我有很多东西。我将把项目串联如下:
obj2 = [{ rowNumber:33, rows:[{item1:'ItemOne'}]}, { rowNumber:44, rows:[{item2:'ItemTwo'}]}]
===> new obj = [{ rowNumber:77, rows:[{item1:'ItemOne'},{item2:'ItemTwo'}]}]
这是我的密码
let newobj=obj2.reduce((current , next)=> {
current.rowNumber+next.rowNumber;
current.rows.push(next.rows);
return next;
});
console.log(JSON.stringify(newobj))
实际上,这只是第二个元素
{"rowNumber":44,"rows":[{"item2":"ItemTwo"}]}
PS:我用的是Typescript
最佳答案
您没有更新current
对象(实际上应该称为accumulator
)。此外,您正在推至current
但返回next
。这是一个固定版本。
let obj2 = [{ rowNumber:33, rows:[{item1:'ItemOne'}]}, { rowNumber:44, rows:[{item2:'ItemTwo'}]}];
let newobj = obj2.reduce((current , next) => {
current.rowNumber += next.rowNumber;
current.rows.push(...next.rows);
return current;
});
console.log(JSON.stringify(newobj))
我会把Read函数中的变量名固定到
(acc, current) => {...}
,以便遵守约定,这样就可以清楚地看到,您想使用current
更新acc
,然后返回acc
。关于javascript - 减少对象数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52937022/