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

如何提取嵌套数组中子数组的对象并生成新的一维对象数组

数组降维实现方案

可以实现,这是非常常见的单层嵌套数组降维需求,针对你给出的[[{id: 1}], [{id: 2}]]结构,以下是不同兼容场景下的实现方案:

1. 现代JS环境首选:Array.prototype.flat()

ES2019(ES10)新增的原生降维方法,默认仅展开1层嵌套,刚好适配你的场景:

const originArr = [[{id: 1}], [{id: 2}]];
const result = originArr.flat();
// 输出:[{id: 1}, {id: 2}]

如果后续遇到更深的嵌套,可以传入对应层级参数,比如flat(2)展开2层,flat(Infinity)展开任意深度的嵌套。

2. ES6+ 兼容方案:展开运算符 + concat()

如果你的运行环境不支持ES2019,可以用ES6的展开运算符配合数组合并方法实现:

const originArr = [[{id: 1}], [{id: 2}]];
const result = [].concat(...originArr);
// 输出:[{id: 1}, {id: 2}]

3. ES5 全兼容方案:reduce() + concat()

需要兼容IE等老版本环境时,用ES5原生的reduce方法即可实现:

const originArr = [[{id: 1}], [{id: 2}]];
const result = originArr.reduce(function(acc, current) {
  return acc.concat(current);
}, []);
// 输出:[{id: 1}, {id: 2}]

内容的提问来源于stack exchange,提问作者David Roman A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 04:45:03