如何将嵌套对象数组合并为单个包含所有对象的数组?
解决嵌套对象数组转单个数组的问题
1. 单纯扁平化嵌套数组(不处理重复对象)
如果只需要把嵌套的数组展开为单个数组,不需要对重复ID的对象做合并,直接使用数组原生的flat()方法最简便:
// 展开一层嵌套数组 const flattenedArray = backendData.flat(); // 若不确定嵌套层级,用flat(Infinity)处理深层嵌套 // const flattenedArray = backendData.flat(Infinity);
2. 合并重复ID的对象(结合你现有的merge方法)
你编写的merge方法通过剩余参数...arrays接收多个数组,而你的backendData是嵌套数组结构,只需用扩展运算符把嵌套数组展开,作为参数传入merge即可:
const mergedArray = merge(...backendData);
关于你之前尝试的forEach+扩展语法
如果之前你是类似这样的写法:
let result = []; backendData.forEach(data => { result = [...result, ...data]; });
这种写法本身也能实现扁平化,若未成功大概率是代码逻辑细节出错(比如未正确初始化结果数组、赋值逻辑有误),但flat()方法更简洁高效。
内容的提问来源于stack exchange,提问作者Valentine
相关产品推荐
相关产品推荐

