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

如何将对象中多组数组类型的值合并为单个数组?

合并对象中所有数组元素为单一数组

给定如下键值对格式的对象holiday_expenses,其中每个键对应的值都是数组,需要将所有数组中的元素合并成一个单独的数组。

代码示例

const holiday_expenses = {
  food: [{name: "abc", place: "xyz"}],
  travel: [{name: "abcd", place: "xyz1"}],
  accommodation: [{name: "xysz", place: "xyz2"}]
}

预期结果

result: [{name: "abc", place: "xyz"}, {name: "abcd", place: "xyz1"}, {name: "xysz", place: "xyz2"}]

方案1:使用Object.values() + flat()

这是最简洁的实现方式,先用Object.values()提取对象所有值组成的数组,再通过flat()将嵌套的单层数组直接扁平化。

const result = Object.values(holiday_expenses).flat();
console.log(result);

方案2:使用reduce()遍历合并

如果需要兼容不支持flat()的旧运行环境,可以用Array.reduce()逐个合并数组:

const result = Object.values(holiday_expenses).reduce((acc, curr) => acc.concat(curr), []);
console.log(result);

解释:reduce()会遍历每个子数组,用concat()把当前数组的元素追加到累加器数组acc中,初始值设为空数组[],最终得到合并后的完整数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:15:59