js怎样实现数组的扁平化
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,js怎样实现数组的扁平化,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数组扁平化的方式什么是数组扁平化?数组扁平化:指将一个多维数组
千家信息网最后更新 2026年11月02日js怎样实现数组的扁平化
js怎样实现数组的扁平化,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
数组扁平化的方式
什么是数组扁平化?
数组扁平化:指将一个多维数组转化为一个一维数组。
例:将下面数组扁平化处理。
const arr = [1, [2, 3, [4, 5]]] // ---> [ 1, 2, 3, 4, 5 ]
1.使用flat()
flat() 方法是ES10提出的,它会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。(flat意为"水平的;平坦的")
const result1 = arr.flat(Infinity) // 指定深度为无限console.log(result1) // [ 1, 2, 3, 4, 5 ]const result2 = arr.flat(1) // 指定深度为1console.log(result2) // [ 1, 2, 3, [ 4, 5 ] ]const result3 = arr.flat(2) // 指定深度为2console.log(result3) // [ 1, 2, 3, 4, 5 ]
2.使用正则
以下做法得到的数组元素都会变成字符串,不建议使用;
const result1 = JSON.stringify(arr).replace(/\[|\]/g, '').split(',')console.log(result1) // [ '1', '2', '3', '4', '5' ] 数组元素都变成了字符串对以上方法进行优化处理;
const result2 = JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g, '') + ']')console.log(result2) // [ 1, 2, 3, 4, 5 ]3.使用reduce()+concat()
使用reduce拿到数组的当前值和前一项值,判断当前值是否为数组,初始值设置为[],然后使用concat进行数组合并。
reduce()方法:对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
concat()方法:用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
function flatten(arr) { return arr.reduce((pre, current) => { return pre.concat(Array.isArray(current) ? flatten(current) : current) }, [])}const result = flatten(arr)console.log(result) // [ 1, 2, 3, 4, 5 ]4.使用函数递归
循环遍历数组,发现含有数组元素就进行递归处理,最终将数组转为一维数组。
const result = []function exec(arr) { arr.forEach(item => { if (Array.isArray(item)) { exec(item) } else { result.push(item) } })}exec(arr)console.log(result) // [ 1, 2, 3, 4, 5 ]5.使用扩展运算符+concat()
ES6新推出的扩展运算符能对数组进行降维处理(一次降一维),循环判断是否含有数组,进行concat合并。
some()方法:测试数组中是不是至少有1个元素通过了被提供的函数测试(它返回的是一个Boolean类型的值)。
function flatten(arr) { while (arr.some(item => Array.isArray(item))) { arr = [].concat(...arr) } return arr}const result = flatten(arr)console.log(result) // [ 1, 2, 3, 4, 5 ]关于js怎样实现数组的扁平化问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
数组
元素
扁平
方法
深度
处理
函数
问题
一维
递归
字符
字符串
更多
运算符
帮助
循环
测试
解答
运算
平坦
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡
百单网互联网科技有限公司怎么样
科技和互联网公司
朗新科技与工业互联网
奇酷互联网络科技
互联网科技视频
金融科技和互联网金融
美国互联网前沿科技
中国最先进互联网科技公司
互联网科技公司有风险吗
链环科技传统企业怎么转型互联网
互联网金融科技展
互联网行业科技股
上海科技产业互联网平台
互联网公司高科技产品
深圳互联网科技的发展
山东大美朱楼互联网科技有限公司
互联网科技包装股
九思连强互联网电子科技有限公司
互联网科技的前景
手冲咖啡和咖啡机区别
与互联网科技公司
碳银互联网科技
贷财互联网科技
互联网科技有限公司 翻译
科技互联网的核心竞争力
启辰互联网科技
全球科技与互联网公司市值变化
互联网科技创新方面的资料
中国主要互联网科技公司