javascript - 根据id合并两个数组

标签 javascript arrays merge

如果我有两个数组,我想用基于 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/

相关文章:

JavaScript:定位动态创建的元素,以便 "floats"位于页面上

c - 将指针传递给结构数组

python - Pandas :在日期时间索引上合并数据帧

javascript - 未捕获的类型错误 : Cannot read property 'top' of undefined error

javascript - 在弹出窗口中单击退出按钮时防止父页面重新加载

java - 多维数组索引越界Java

python - Pandas:使用另一个数据帧中的重复行更新多个数据帧列

file - Unix/庆典 : Reading A List of Files and Merge Them To A File

javascript - 调用 Servlet 并从 JavaScript 和参数调用 Java 代码

python - 值错误 : zero-dimensional arrays cannot be concatenated