常见数组降维方法

需求:多维数组=>一维数组

let ary = [1, [2, [3, [4, 5]]], 6];

let str = JSON.stringify(ary);

第0种处理:直接的调用

1arr_flat = arr.flat(Infinity);

第一种处理

1ary = str.replace(/(\[\]))/g, '').split(',');

第二种处理

str = str.replace(/(\[\]))/g, '');

str = '['+ str + ']';

ary = JSON.parse(str);

第三种处理:递归处理

let result = [];

let fn = function(ary) {

     for(let i = 0; i < ary.length; i++) }{

          let item = ary[i];

          if(Array.isArray(ary[i])){

                 fn(item);

          } else{

                 result.push(item);

           }

     }

}

第四种处理:用 reduce 实现数组的 flat 方法

functionflatten(ary) {

    returnary.reduce((pre, cur) => {

         returnpre.concat(Array.isArray(cur) ? flatten(cur) : cur);

    })

}

let ary = [1, 2, [3, 4], [5, [6, 7]]]

console.log(ary.MyFlat(Infinity))

第五种处理:扩展运算符

while(ary.some(Array.isArray)) {

    ary = [].concat(...ary);

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。