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

如何将普通数组与含子数组的数组合并为同类型元素一维数组

实现方案

方法1:使用ES6内置flat方法(推荐)

  • 核心逻辑:调用数组flat()方法展开嵌套数组,传入Infinity可支持任意深度的嵌套结构展开,再通过扩展运算符或者concat方法和第一个数组合并。
  • 代码示例:
// 展开data2所有嵌套子数组
const flatData2 = data2.flat(Infinity)
// 合并两个数组得到最终一维数组
const finalData = [...data1, ...flatData2]

// 也可以合并为一行写法
const finalData = [...data1, ...data2.flat(Infinity)]
  • 注意:如果明确data2的嵌套层级最多为N层,可以把Infinity替换为对应的数字N,比如只有1层嵌套就写flat(1),性能更好。

方法2:兼容低版本环境的手动实现

如果运行环境不支持ES6的flat()方法,可以用递归+reduce手动实现数组扁平化:

// 自定义扁平化函数
function flattenArray(arr) {
  return arr.reduce((acc, cur) => {
    // 如果当前元素是数组就递归展开,否则直接加入结果
    return acc.concat(Array.isArray(cur) ? flattenArray(cur) : cur)
  }, [])
}

const finalData = data1.concat(flattenArray(data2))

内容的提问来源于stack exchange,提问作者Borislav Stefanov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 20:06:01