我想使用另一个JS数组替换JS数组属性的值。如下所述。
const arr1 = [
{
code: "XXY",
dis: "cont1",
note: "Note for cont1"
},
{
code: "AAW",
dis: "cont2",
note: "Note for cont2"
},
{
code: "TTR",
dis: "cont5",
note: "Note for cont5"
},
{
code: "MMN",
dis: "cont10",
note: "Note for cont10"
}]
const new_array = [
{
"code": "AAW",
"dis": "cont2 new",
"note": "Note for cont2"
},
{
"code": "TTR",
"dis": "cont5",
"note": "New Note for cont5"
}]
期望输出:
[
{
code: "XXY",
dis: "cont1",
note: "Note for cont1"
},
{
code: "AAW",
dis: "cont2 new",
note: "Note for cont2"
},
{
code: "TTR",
dis: "cont5",
note: "New Note for cont5"
},
{
code: "MMN",
dis: "cont10",
note: "Note for cont10"
}
]
我们需要检查所有arr1
元素,其中等于new_arr.code
的元素与arr1.code
进行比较,并比较dis
和note
属性。如果arr1.dis
不等于new_arr.dis
,则应将arr1.dis
的值替换为new_arr.dis
的值。对于note
属性也是如此。
尝试的代码:
arr1.forEach(function(item1) {
var item2 = arr1.find(function (item2) {
return arr1.code === new_array.code;
});
})
console.log(arr1);
当前输出:
[
{
"code": "XXY",
"dis": "cont1",
"note": "Note for cont1"
},
{
"code": "AAW",
"dis": "cont2",
"note": "Note for cont2"
},
{
"code": "TTR",
"dis": "cont5",
"note": "Note for cont5"
},
{
"code": "MMN",
"dis": "cont10",
"note": "Note for cont10"
}
]
我该如何解决这个问题?