gpt4 book ai didi

javascript - 减少对象数组

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:50 24 4
gpt4 key购买 nike

我有一个对象数组。我会按如下方式连接项目:

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))

我会将 reduce 函数中的变量名称固定为 (acc, current) => {...} 只是为了遵守约定,这样很明显您想使用 current 更新 acc 然后返回 acc

关于javascript - 减少对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52937022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com