js数组扁平化

什么是数组扁平化

  1.扁平化,顾名思义就是减少复杂性装饰,使其事物本身更简洁,简单,突出主题。

  2.数组扁平化,就是将一个复杂的嵌套多层的数组,一层一层的转化为层级较少或者只有一层的数组

var arr = [1, [2, 3, [4, 5, [6]]]]
function flatten(arr){
  return arr.toString().split(',').map((item) =>{
    return +item
  } )
}
arr.toString().split(',') 结果是 ["1", "2", "3", "4", "5", "6"] map在返回一个处理过的新数组
console.log(flatten(arr)) [1,2,3,4,5,6]
 
 
 
es6方案  some
    function flatten(arr) {
      while (arr.some(item => Array.isArray(item))) {
        arr = [].concat(...arr);
      }
      return arr;
    }

    const arr = [1, [2, [3, 4]]];
    console.log(flatten(arr));
 
 
递归方法
/* ES6 */
    const flatten = (arr) => {
      let result = [];
      arr.forEach((item, i, arr) => {
        if (Array.isArray(item)) {
          result = result.concat(flatten(item));
        } else {
          result.push(arr[i])
        }
      })
      return result;
    };

    const arr = [1, [2, [3, 4]]];
    console.log(flatten(arr));
 
 
posted @ 2020-12-07 10:29  起风了1573  阅读(182)  评论(0)    收藏  举报