【发布时间】:2022-11-28 10:00:59
【问题描述】:
你好,
我有这两个对象数组:
const arr1 = [{"id":"pear","qty":2},{"id":"apple","qty":2}];
const arr2 = [{"id":"pear","qty":5},{"id":"lemon","qty":1}];
我想将它们组合起来,但同时在它们具有相同的id 时将它们的值相加在 qty 中,所以这是预期的输出:
[{"id":"pear","qty":7},{"id":"apple","qty":2},{"id":"lemon","qty":1}];
我试过这个但它只保留第一个对象:
const newArray = arr1.map((obj) => {
const secondArrayObj = arr2.find((obj2) => obj2.id === obj.id);
if (secondArrayObj) {
return {...secondArrayObj, ...obj}
}
return null;
}).filter((obj) => obj != null);
console.log(newArray);
这里最好的方法是什么?
谢谢你。
【问题讨论】:
标签: javascript arrays object