如果我有两个数组,我想用基于 id 的 arr2 的值重写 arr1 的“age”。 我该怎么做?
var arr1: [{id:1 ,name:abc , age:0 },
{id:2 ,name:abc , age:0 },
{id:3 ,name:abc , age:0 },
{id:4 ,name:abc , age:0 },
{id:5 ,name:abc , age:0 }]
var arr2:[{id:2, value: 18},{ id:4, value:20}]
预期输出:
var arr1: [{id:1 ,name:abc , age:0 },
{id:2 ,name:abc , age:18 },
{id:3 ,name:abc , age:0 },
{id:4 ,name:abc , age:20 },
{id:5 ,name:abc , age:0 }]
最佳答案
我认为最简单的方法是这样的:
arr2.forEach(x => {
arr1.filter(y => y.id === x.id)[0].age = x.value;
});
或者:
arr2.forEach(x => {
arr1.find(y => y.id === x.id).age = x.value;
});
关于javascript - 根据id合并两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67755552/