JavaScript实现多维数组扁平化的5种常用方法
作者:青柠时间:2026-10-26 12:44:39浏览:472
本文详细解析JavaScript中将多维数组转换为一维数组的5种核心方法。涵盖递归遍历、字符串拼接拆分、内置flat方法、concat合并以及扩展运算符展开。通过具体代码示例对比各方案实现细节与适用场景,帮助开发者根据需求选择最优降维策略。
多维数组降维,在技术术语中通常被称为数组扁平化。
实现数组扁平化的方式多种多样,本文重点介绍并演示其中五种主流且实用的处理方法。
第一种方法:使用递归函数。
// 一,递归
let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]]
let newArr = []
const getArr=(array)=>{
array.forEach((item)=>{
// 如果遍历的元素不是一个数组 就把这个元素放到新数组中
// 反之 就进行递归再次调用方法
Array.isArray(item) ? getArr(item) : newArr.push(item)
})
}
getArr(arr)
console.log(newArr)
第二种方法:将多维数组转换为字符串,随后再还原为一维数组。
let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]]
console.log(arr.join(',').split(','))
第三种方法:利用数组内置方法。
具体而言,可以指定 Infinity 作为展开深度参数,从而展开任意层级的嵌套数组。
Array.prototype.flat()
let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]]
console.log(arr.flat(Infinity))
第四种方法:利用 concat 方法。
var a = [1,[2],[3,4]]
var result = []
for(var i=0; i<a.length; i++){
if(a[i].constructor == Array) {
result = result.concat(a[i])
}else {
result.push(a[i])
}
}
console.log(result)
第五种方法:利用扩展运算符。
扩展运算符的作用机制相当于将数组拆解至最小单位。
例如,[[1,2,[3, 4]]] 经过扩展运算符处理后,结构变为 1,2, [3, 4]。此时执行 [].concat(...a) 的操作,等价于执行 [].concat(1, 2, [3, 4])。
var a = [1,[2],[3,4]]
var result = []
result = [].concat(...a)
console.log(result)
至此,关于JavaScript多维数组降维的五种方法介绍完毕。如需了解更多相关技术内容,建议查阅本站往期文章或继续浏览后续相关内容,感谢大家的支持。
作者最新文章
ES6模块化中js文件怎么用import和export交互
2026-11-05 17:00:48
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
相关标签:
