数组扁平化

法一:使用es6种Array新增flat()方法。flat()方法接受一个参数,指定要提取嵌套数组的结构深度,默认值为 1。


function myFlat(arr) {

  return arr.flat(Infinity)

}

法二:利用reduce+isArray


function flatDeep(arr, d = 1) {

    return d > 0 ? arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatDeep(val, d - 1) : val), [])

        : arr.slice();

};

法三:利用forEach


function flatDeep(arr, res=[]){

    arr.forEach(entry=> Array.isArray(entry) ? flatDeep(entry,res) : res.concat(entry));

    return res;

}

参考链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容