【发布时间】:2020-06-23 10:02:48
【问题描述】:
我有两个数组列表list1和list2,属性name匹配,然后将list1和list2匹配对象的所有qty相加,返回list1的更新数量
function resultantArray(list1, list2){
let sum = list2.map(o => o.qty|| 0).reduce((a, c) => { return a + c });
list1.forEach(item=>{
list2.find(elm => elm.productcode == item.productcode).qty= sum;
});
}
var list1 = [
{id:1, name: "IN",qty: 1},
{id:2, name: "TH"},
{id:3, name: "AU"}
]
var list2 = [
{id:3, name: "IN", qty:1},
{id:5, name: "IN", qty:1},
{id:4, name: "TH", qty: 2},
{id:1, name: "SG", qty: 3}
]
预期输出:
[
{id:1, name: "IN",qty: 3},
{id:2, name: "TH", qty: 2},
{id:3, name: "AU"}
]
【问题讨论】:
-
不应该在输出对象中
TH是 qty2?... 列表 2 中名称缺失的项目会怎样? -
@briosheje 感谢您的回复,我已经更新了输出,应该包含
TH,在list2中缺少名称也应该包含, -
如果在
list2中TH的条目没有qty,会发生什么?没有qty属性是什么意思?是否等同于qty: 0? -
@trincot 感谢 rply,是的,它相当于
qty: 0 -
只是一个提示,考虑将您的问题包含在问题的正文中,而不仅仅是在标题中。它确实让您更清楚您在寻找什么。
标签: javascript arrays object javascript-objects