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

如何将含嵌套对象的对象数组转换为扁平对象数组

把嵌套数组对象扁平化的解决方案

嘿,这事儿好办!你需要把原数组中每个元素对象里的所有子对象提取出来,合并成一个一维数组对吧?这里有两种简洁的实现方式:

方法1:使用ES6+的flatMap(推荐)

这种写法最直观,一步到位:

var test = [
    { t1: {a:1, b:2}, t2: {a:3, b:4} },
    { t3: {a:5, b:6}, t4: {a:7, b:8} }
];

const transformedTest = test.flatMap(item => Object.values(item));

console.log(transformedTest);
// 输出结果:[{a:1, b:2}, {a:3, b:4}, {a:5, b:6}, {a:7, b:8}]

逻辑说明:

  • Object.values(item):把原数组里的每个元素(比如{t1:..., t2:...})转换成它的所有值组成的数组,比如第一个元素会变成[{a:1,b:2}, {a:3,b:4}]。
  • flatMap:先对数组每个元素做映射转换,然后自动把转换后的多维数组“拍平”成一维数组,完美匹配你的需求。

方法2:兼容性更好的map+concat写法

如果你的运行环境不支持ES6+的flatMap,可以用这个替代方案,效果完全一致:

var test = [
    { t1: {a:1, b:2}, t2: {a:3, b:4} },
    { t3: {a:5, b:6}, t4: {a:7, b:8} }
];

const transformedTest = [].concat(...test.map(item => Object.values(item)));

console.log(transformedTest);
// 同样得到目标数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:13:05