给定两个数组,写一个方法来计算它们的交集?

可以使用 ES6 的 Set 数据结构来实现数组交集。

首先,将一个数组转化为 Set,然后遍历另一个数组,将数组中存在于 Set 中的元素存入结果数组中。

以下是一个示例代码:

function intersection(nums1, nums2) {
  const set1 = new Set(nums1);
  const res = [];

  for (let num of nums2) {
    if (set1.has(num)) {
      res.push(num);
    }
  }

  return res;
}

使用示例:

const nums1 = [1, 2, 2, 1];
const nums2 = [2, 2];

console.log(intersection(nums1, nums2)); // [2]

该算法的时间复杂度为 O(m+n),其中 m 和 n 分别为两个数组的长度。