Object.assign()--两个数组,里面对象有相同的字段,合并成一个数组
warning:
这篇文章距离上次修改已过200天,其中的内容可能已经有所变动。
Object.assign()
方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。
要合并两个数组,每个数组中的对象具有相同的字段,可以创建一个新的空对象,然后分别将这两个数组的对象复制到这个新对象中。这里假设数组中的对象具有不同的标识符,如果有重复的标识符,后面的对象将覆盖前面的对象中相同字段的值。
以下是一个示例代码:
let array1 = [{ id: 1, name: 'Alice', age: 25 }, { id: 2, name: 'Bob', age: 30 }];
let array2 = [{ id: 3, name: 'Charlie', age: 28 }, { id: 1, name: 'Alice', age: 22 }];
let mergedArray = [];
array1.forEach(item => {
Object.assign(mergedArray, { [item.id]: item });
});
array2.forEach(item => {
Object.assign(mergedArray, { [item.id]: item });
});
console.log(mergedArray);
在这个例子中,Object.assign()
用于将每个对象中的属性复制到mergedArray
对象中。如果mergedArray
中已经存在与被复制对象中具有相同键的属性,它将被新值覆盖。最终,mergedArray
将包含来自两个数组的所有对象,并且对象中具有相同字段的值将取决于最后一个对象。
评论已关闭