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

AngularJS中如何将多组对象数组合并为单一对象数组?

在AngularJS中扁平化嵌套对象数组的方法

没问题,要把这种两层嵌套的对象数组合并成单一数组,在AngularJS里有好几种简单的实现方式,给你详细说说:

方法一:使用AngularJS内置的angular.forEach

这是最贴合AngularJS风格的写法,手动遍历每个子数组并拼接:

// 你的输入嵌套数组
const nestedArray = [ 
  [ { "title": "asd", "description": "asd" }, { "title": "asz", "description": "sd" } ], 
  [ { "title": "ws", "description": "sd" }, { "title": "re", "description": "sd" } ], 
  [ { "title": "32", "description": "xxs" }, { "title": "xxc", "description": "11" } ] 
];

const flattenedArray = [];

// 遍历外层数组的每个子数组
angular.forEach(nestedArray, function(subArray) {
  // 把当前子数组的元素合并到结果数组中
  flattenedArray = flattenedArray.concat(subArray);
});

console.log(flattenedArray); // 输出就是你期望的单一对象数组

方法二:使用原生JS的flat()方法(简洁高效)

如果你的项目环境支持ES2019及以上,这个方法最省心,一行代码搞定:

const nestedArray = [ /* 你的输入数组 */ ];
const flattenedArray = nestedArray.flat();

flat()默认会处理一层嵌套的数组,刚好匹配你的需求。如果是更深层级的嵌套,可以传入参数flat(Infinity)来彻底扁平化。

方法三:使用原生JS的reduce()方法

这也是一种非常灵活的写法,通过累加器逐步合并数组:

const nestedArray = [ /* 你的输入数组 */ ];
const flattenedArray = nestedArray.reduce(function(accumulator, currentSubArray) {
  return accumulator.concat(currentSubArray);
}, []); // 初始累加器设为空数组

这几种方法最终都会得到你想要的输出数组,你可以根据项目的环境和个人习惯选择合适的写法~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:36:23