
实现JavaScript数组拍平/扁平化的方法
发布日期:2021-05-10 03:43:15
浏览次数:14
分类:精选文章
本文共 1157 字,大约阅读时间需要 3 分钟。
实现JavaScript数组拍平/扁平化的方法
当需要将嵌套的数组展开成一个一维数组时,可以采用多种方法。以下是一些常用的实现方式:
使用toString方法
将数组转换为字符串,然后用split分割为数组,再将每个元素转换为数字类型。var arr = ['a', ['b', 'c'], 2, ['d', 'e', 'f'], 'g', 3, 4]; function flat(arr) { return arr.toString().split(',').map(function(item) { return Number(item) }) } console.log(flat(arr));
使用reduce特性
利用reduce方法递归地处理数组,将嵌套数组展开。function flat(arr) { return arr.reduce((acc, item) => { if (Array.isArray(item)) { return acc.concat(item); } else { return acc.concat([item]); } }, []) } var arr = ['a', ['b', 'c'], '2', ['d', 'e', 'f'], 'g', 3, 4]; console.log(flat(arr));
递归方法
递归遍历数组,检查每个元素是否是数组,如果是则继续递归,否则将其添加到结果数组中。function flat(array) { var result = []; var each = function(arr) { arr.forEach(item => { if (Array.isArray(item)) { each(item); } else { result.push(item); } }); }; each(array); return result.join(','); } var arr = ['a', ['b', 'c', [7, 8]], 2, ['d', 'e', 'f'], 'g', 3, 4]; console.log(flat(arr));
这些方法各有优劣,选择取决于具体需求和性能要求。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月19日 09时13分09秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
tomcat服务器
2019-03-07
vue 导出Excel乱码问题解决方案
2019-03-07
eggjs validate no function 解决方案
2019-03-07
Permission denied 解决方案
2019-03-07
iOS_图片添加水印_文本倾斜
2019-03-07
iOS_Runtime3_动态添加方法
2019-03-07
iOS_Runtime4_动态添加属性
2019-03-07
Docker配置文件
2019-03-07
JWT的介绍、代码实现与解决方案
2019-03-07
PNFT邮票数字资产化,科技、美学与价值的完美融合
2019-03-07
5G赋能新文旅 巡天遥看一千河
2019-03-07
Dijkstra算法之matlab实现
2019-03-07
嵌入式中使用命令行调试程序
2019-03-07
Unsupported SFP+ Module
2019-03-07
linux 中改变运行程序的 stdout
2019-03-07
dpdk 程序创建 kni 虚拟网络接口失败的问题
2019-03-07
uio 设备文件创建以及 iommu 导致 x710 网卡初始化失败问题
2019-03-07
patchelf 的功能以及使用 patchelf 修改 rpath 以解决动态库问题
2019-03-07
关调度与关中断
2019-03-07