js 优雅的处理逻辑判断

定义一个处理逻辑的函数 接收一个参数,当这个参数为1或2 的时候做相同的操作, 3 或 4 的时候做相同的操作 为其他值的时候报错

vue中使用

// 使用 map 对象
  fn(num){
    let myMap = new Map([
        [/^(1|2)$/ig,this.handleTest],// num 为 1 或 2 触发 handleTest
        [/^(3|4)$/ig,this.handleTest2],// num 为 3 或 4 触发 handleTest2
        [/[^1234]/ig,this.handleTest3],// num 为 其他值 触发 handleTest3
     ]);
      let action = [...myMap].filter(([key,val]) => key.test(num));// 如果正则匹配为 true ,那么fileter 返回当前对象
      action.forEach(([key,val]) => val() );// 遍历当前对象 执行这个对象中的方法
  },
  handleTest(){
    console.log('map对象测试');
    
  },
  handleTest2(){
    console.log('map第二个对象测试');
    
  },
  handleTest3(){
    console.error('不满足条件的任何值 都进入此函数');
  },

原文连接 点我跳转

你可能感兴趣的:(js 优雅的处理逻辑判断)