js两个数组对象合并去重
时间: 2023-07-04 22:28:21 浏览: 73
要合并两个数组对象并去重,可以使用以下方法:
```javascript
const arr1 = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}];
const arr2 = [{id: 2, name: 'Bob'}, {id: 3, name: 'Charlie'}];
const mergedArr = [...arr1, ...arr2.filter(obj2 => !arr1.some(obj1 => obj1.id === obj2.id))];
```
这里使用了展开运算符 `...` 来将两个数组对象合并为一个数组,然后使用 `filter()` 方法和 `some()` 方法来去重。具体来说,`filter()` 方法用于过滤掉 `arr2` 中已经存在于 `arr1` 中的对象,而 `some()` 方法用于检查某个对象是否存在于 `arr1` 中。最后,将去重后的数组赋值给 `mergedArr` 变量即可。
相关问题
js两个数组中对象去重合并
你可以使用一些方法来合并并去重两个包含对象的数组。以下是一种可能的实现方式:
```javascript
function mergeAndDistinctArrays(arr1, arr2) {
const merged = [...arr1, ...arr2];
const distinct = merged.reduce((acc, obj) => {
const existing = acc.find(item => item.id === obj.id);
if (!existing) {
acc.push(obj);
}
return acc;
}, []);
return distinct;
}
```
在这个例子中,我们首先使用展开运算符(`...`)将两个数组`arr1`和`arr2`合并为一个新数组`merged`。然后,我们使用`reduce`方法遍历这个合并后的数组,检查每个对象的`id`属性是否已经存在于累加器数组`acc`中。如果不存在,我们将当前对象添加到累加器数组中。最后,我们返回去重后的数组`distinct`。
你可以调用这个函数并传入你自己的数组参数,例如:
```javascript
const array1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Alice' }];
const array2 = [{ id: 2, name: 'Alice' }, { id: 3, name: 'Bob' }];
const mergedAndDistinct = mergeAndDistinctArrays(array1, array2);
console.log(mergedAndDistinct);
```
这将输出去重后的合并数组:
```
[
{ id: 1, name: 'John' },
{ id: 2, name: 'Alice' },
{ id: 3, name: 'Bob' }
]
```
请注意,这个实现假设对象中的`id`属性用于唯一标识对象。如果你的对象有其他唯一属性,你需要相应地进行修改。
js将两个数组合并并去重
可以使用 ES6 中的 Set 和 Spread 运算符来实现合并并去重:
```
const arr1 = [1, 2, 3];
const arr2 = [2, 3, 4];
const mergedArr = [...new Set([...arr1, ...arr2])];
```
这样,`mergedArr` 就会变成 `[1, 2, 3, 4]`。