You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中扁平化指定结构的二维数组?

实现数组的部分扁平化(仅展开第一层嵌套)

假设你有如下嵌套数组,元素可以是文本、数字或其他数组:

var array = [[1,2],[ [3,4],[5,6] ],[1,2],[1,2]]

需要得到的结果是将第二层的子数组直接展开至外层,同时保留最内层的数组结构:

var flattened = [[1,2],[3,4],[5,6],[1,2],[1,2]]

以下是几种可行的实现方法:

方法1:使用Array.prototype.flat()

flat()方法可以指定扁平化的深度,传入1即可仅展开一层嵌套:

var array = [[1,2],[ [3,4],[5,6] ],[1,2],[1,2]];
var flattened = array.flat(1);
console.log(flattened); // 输出: [[1,2],[3,4],[5,6],[1,2],[1,2]]

方法2:使用reduce + concat(兼容旧环境)

如果运行环境不支持flat,可以用reduce遍历数组,结合concat合并元素:

var array = [[1,2],[ [3,4],[5,6] ],[1,2],[1,2]];
var flattened = array.reduce((acc, curr) => acc.concat(curr), []);
console.log(flattened); // 输出: [[1,2],[3,4],[5,6],[1,2],[1,2]]

方法3:使用扩展运算符... + concat

利用扩展运算符展开外层数组元素,再通过concat合并为新数组:

var array = [[1,2],[ [3,4],[5,6] ],[1,2],[1,2]];
var flattened = [].concat(...array);
console.log(flattened); // 输出: [[1,2],[3,4],[5,6],[1,2],[1,2]]

内容的提问来源于stack exchange,提问作者icecream sugar black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:40:27