vue 两个数组对象根据名字去重
时间: 2023-12-09 18:59:44 浏览: 220
你可以使用 JavaScript 中的 reduce 和 find 方法来实现根据名字去重两个数组对象。具体步骤如下:
1. 将两个数组合并成一个数组。
2. 使用 reduce 方法遍历数组,将每个对象的名字作为 key,将对象作为 value,存放在一个对象中。
3. 使用 Object.values 方法将对象转换为数组。
代码示例:
```javascript
const arr1 = [
{ name: 'Tom', age: 20 },
{ name: 'Jerry', age: 22 },
{ name: 'Lucy', age: 18 }
];
const arr2 = [
{ name: 'Tom', gender: 'male' },
{ name: 'Marry', gender: 'female' },
{ name: 'Lucy', gender: 'female' }
];
const result = Object.values([...arr1, ...arr2].reduce((acc, cur) => {
if (!acc[cur.name]) {
acc[cur.name] = cur;
}
return acc;
}, {}));
console.log(result);
// output: [{ name: 'Tom', age: 20, gender: 'male' }, { name: 'Jerry', age: 22 }, { name: 'Lucy', age: 18, gender: 'female' }, { name: 'Marry', gender: 'female' }]
```
在上面的代码中,我们使用了 spread operator 将两个数组合并成一个数组,然后使用 reduce 方法遍历数组,将每个对象的名字作为 key,将对象作为 value,存放在一个对象中。如果该名字已经存在,则将当前对象覆盖之前的对象。最后使用 Object.values 方法将对象转换为数组,并返回去重后的数组。
阅读全文