可以使用map()和find()方法来比较对象数组,并添加新的键值对。
示例代码如下:
interface Item {
id: number;
name: string;
}
const array1: Item[] = [
{ id: 1, name: "item1" },
{ id: 2, name: "item2" },
{ id: 3, name: "item3" }
];
const array2: Item[] = [
{ id: 1, name: "item1" },
{ id: 2, name: "item2" },
{ id: 4, name: "item4" }
];
// 新增的键值对
const newProp = "new prop";
// 在array1中查找array2中的每个项,并添加一个新的键值对
array2.forEach(item2 => {
const item1 = array1.find(i => i.id === item2.id);
if (item1) {
item1[newProp] = "new value";
}
});
console.log(array1); // output: [{id: 1, name: "item1", new prop: "new value"}, {id: 2, name: "item2", new prop: "new value"}, {id: 3, name: "item3"}]
console.log(array2); // output: [{id: 1, name: "item1"}, {id: 2, name: "item2"}, {id: 4, name: "item4"}]
在上面的示例代码中,我们使用forEach()方法来遍历array2中的每个项。然后,我们使用find()方法在array1中查找与当前项相同id的项。如果找到了相同的项,我们就为该项添加一个新的键值对newProp并设置它的值为"new value"。最后,我们打印出更新后的array1和array2。
注意:以上代码中的接口和数组仅为示例,您可以根据自己的需求进行调整。