当前位置 博文首页 > q1424966670的博客:js代码优化(不定时更新)

    q1424966670的博客:js代码优化(不定时更新)

    作者:[db:作者] 时间:2021-08-27 18:43

    1、避免多条件并列

    if (status === 'process' || status === 'wait' || status === 'fail') {
      doSomething()
    }

    这种写法语义性、可读性都不太好。可以通过switch caseincludes这种进行改造。

    switch(status) {
      case 'process':
      case 'wait':
      case 'fail':
        doSomething()
    }
    const enum = ['process', 'wait', 'fail']
    if (enum.includes(status)) {
      doSomething()
    }

    2、数组扁平化

    • 2-1、递归

    var arr = [1, [2, [3, 4]]];
    
    function flatten(arr) {
      var result = [];
      for (var i = 0, len = arr.length; i < len; i++) {
        if (Array.isArray(arr[i])) {
          result = result.concat(flatten(arr[i]));
        } else {
          result.push(arr[i]);
        }
      }
      return result;
    }
    
    console.log(flatten(arr));
    

    2-2、reduce

    var arr = [1, [2, [3, 4]]];
    
    function flatten(arr) {
      return arr.reduce(function (prev, next) {
        return prev.concat(Array.isArray(next) ? flatten(next) : next);
      }, []);
    }
    
    console.log(flatten(arr));
    

    3、短路条件句

    如果你想在某个条件逻辑值为true时,执行某个函数,就像这样:

    if (condition) {
      dosomething()
    }
    

    这时,你可以这样子运用短路:

    condition && dosomething()
    

    4、字符串中取数字

    //String.match(/\d+/g)
    "共 140 条111".match(/\d+/g)     //["140", "111"]

    ?

    cs
    下一篇:没有了