js两个数组对象取差集
时间: 2023-10-10 10:10:26 浏览: 140
在 JavaScript 中,可以使用以下方法获取两个数组对象的差集:
```javascript
function getDifference(arr1, arr2) {
return arr1.filter(obj1 => !arr2.some(obj2 => obj1.id === obj2.id));
}
// 示例数据
const arr1 = [
{ id: 1, name: "A" },
{ id: 2, name: "B" },
{ id: 3, name: "C" }
];
const arr2 = [
{ id: 2, name: "B" },
{ id: 3, name: "C" },
{ id: 4, name: "D" }
];
const difference = getDifference(arr1, arr2);
console.log(difference);
```
输出结果为:
```javascript
[
{ id: 1, name: "A" }
]
```
在上面的示例代码中,`getDifference` 函数接受两个数组 `arr1` 和 `arr2`,并使用 `filter` 方法过滤出在 `arr1` 中存在但在 `arr2` 中不存在的对象。这里使用了 `some` 方法来检查对象的 `id` 属性是否相等,如果相等则认为两个对象是相同的。最后,将差集作为函数的返回值。
相关问题
js两个数组对象取差集,交集
可以使用 JavaScript 中的数组方法来取两个数组对象的差集和交集。以下是一个示例代码:
假设有两个数组对象 arr1 和 arr2:
```javascript
let arr1 = [{id: 1, name: 'John'}, {id: 2, name: 'Mike'}, {id: 3, name: 'Tom'}];
let arr2 = [{id: 2, name: 'Mike'}, {id: 3, name: 'Tom'}, {id: 4, name: 'Jack'}];
```
要取两个数组对象的差集,可以使用 filter() 方法和 includes() 方法:
```javascript
let diff = arr1.filter(obj1 => !arr2.some(obj2 => obj1.id === obj2.id));
console.log(diff); // [{id: 1, name: 'John'}]
```
要取两个数组对象的交集,可以使用 filter() 方法和 some() 方法:
```javascript
let intersection = arr1.filter(obj1 => arr2.some(obj2 => obj1.id === obj2.id));
console.log(intersection); // [{id: 2, name: 'Mike'}, {id: 3, name: 'Tom'}]
```
js中Question : 两个数组对象取差集
可以使用filter和find方法,以及箭头函数来实现两个数组对象的差集操作。具体实现如下:
```javascript
const arr1 = [{id: 1, name: 'apple'}, {id: 2, name: 'banana'}, {id: 3, name: 'orange'}];
const arr2 = [{id: 2, name: 'banana'}, {id: 3, name: 'orange'}, {id: 4, name: 'peach'}];
const diff = arr1.filter(x => !arr2.find(y => y.id === x.id));
console.log(diff); // 输出 [{id: 1, name: 'apple'}]
```
以上代码先使用filter方法对arr1进行遍历,然后使用find方法判断arr2中是否存在相同id的元素,如果不存在则将该元素返回并存入diff数组中,最后输出diff数组即为两个数组对象的差集。
阅读全文