📜  查找两个对象数组之间的交集 javascript (1)

📅  最后修改于: 2023-12-03 14:55:32.506000             🧑  作者: Mango

查找两个对象数组之间的交集 - JavaScript

在 JavaScript 中,我们可以使用 filter()includes() 方法来查找两个对象数组之间的交集。具体实现步骤如下:

  1. 定义两个对象数组 a 和 b,这里只是为了举例:
let a = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 3, name: 'Charlie'}];
let b = [{id: 2, name: 'Bob'}, {id: 4, name: 'David'}];
  1. 使用 filter() 方法过滤出在 b 中存在的元素:
let intersection = a.filter((element) => b.map((e) => e.id).includes(element.id));

这段代码中,我们使用了 filter() 方法来遍历 a 数组,然后在每个元素中使用 includes() 方法来寻找 b 数组中是否存在这个元素。由于 includes() 方法只能在数组中查找基本类型的值,而不能在对象数组中查找对象,所以我们使用了 map() 方法来从 b 数组中提取 id 属性组成的数组,以便能够使用 includes() 方法查找。

  1. 最后输出查找到的交集:
console.log(intersection);
// Output: [{id: 2, name: 'Bob'}]

完整代码如下:

let a = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 3, name: 'Charlie'}];
let b = [{id: 2, name: 'Bob'}, {id: 4, name: 'David'}];

let intersection = a.filter((element) => b.map((e) => e.id).includes(element.id));

console.log(intersection);
// Output: [{id: 2, name: 'Bob'}]

这就是使用 JavaScript 查找两个对象数组之间的交集的方法。