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多维数组降维的五种方法介绍完毕。如需了解更多相关技术内容,建议查阅本站往期文章或继续浏览后续相关内容,感谢大家的支持。

作者最新文章