两个数组,使用js根据数组里面的对象属性名称为name来判断这两个数组的name是否相同,根据相同的name属性值合并两个数组的对象成一个新的数组
时间: 2024-09-30 19:16:11 浏览: 34
vue 对象数组中,根据相同属性的数据合并,重组新的数组对象
在JavaScript中,你可以通过`filter()`和`reduce()`方法来实现这个功能。首先过滤出两个数组中name属性相同的对象,然后将它们合并到一个新的数组中。这里有一个简单的示例:
```javascript
function mergeArrays(array1, array2) {
let commonNames = array1.filter(obj1 => array2.some(obj2 => obj1.name === obj2.name));
return array1.reduce((acc, obj) => {
if (!commonNames.includes(obj)) acc.push(obj);
return acc;
}, []) // 使用空数组作为初始值
.concat(commonNames)
.concat(array2.filter(obj => !commonNames.includes(obj)));
}
let array1 = [{ name: 'item1' }, { name: 'item2'}, { name: '941'}];
let array2 = [{ name: 'item2' }, { name: '941.JPEG'}, { name: 'item3'}];
let mergedArray = mergeArrays(array1, array2);
console.log(mergedArray);
阅读全文