js怎么让[{id: 1, name: 3}] [{x: 3, y: 4}]合并成[{id: 1, name: 3,x: 3, y: 4}]
时间: 2023-06-07 08:09:44 浏览: 70
你可以使用JavaScript的concat()方法将两个数组合并,然后使用for循环或forEach()方法添加需要合并的属性。
示例代码:
```
let arr1 = [{id: 1, name: 3}];
let arr2 = [{x: 3, y: 4}];
let mergedArr = arr1.concat(arr2);
mergedArr.forEach(obj1 => {
Object.keys(obj1).forEach(key1 => {
if (key1 == 'id') {
mergedArr.forEach(obj2 => {
Object.keys(obj2).forEach(key2 => {
if (key2 == 'x') {
obj1[key2] = obj2[key2];
} else if (key2 == 'y') {
obj1[key2] = obj2[key2];
}
});
});
}
});
});
console.log(mergedArr);
// Output: [{id: 1, name: 3, x: 3, y: 4}]
```
这段代码首先使用concat()方法将两个数组合并,得到一个新的数组mergedArr。然后使用forEach()方法遍历每个对象obj1,使用Object.keys()方法获得每个对象的key值。如果obj1的key值为'id',则再次使用forEach()方法遍历mergedArr数组,得到其他对象obj2,判断其是否含有key值为'x'或'y'的属性,如果有,则将其值添加到obj1中。最终输出合并后的结果。
阅读全文