JavaScript 数组的唯一交集


我们需要编写一个 JavaScript 函数来处理两个数字数组,比如 arr1 和 arr2。该函数会查找数组元素之间的交集,即在两个数组中都出现的元素。

唯一的条件是如果我们之前遇到一个元素作为交集,则在另一个数组中再次出现时不予考虑。

例如 −

如果输入数组是 −

const arr1 = [1, 5, 7, 3, 1];
const arr2 = [1, 7, 3, 1, 6];

则输出数组应该是 −

const output = [1, 3, 7];

然而,顺序不是那么重要,更重要的是,不要考虑重复的交集。

示例

以下是代码 −

const arr1 = [1, 5, 7, 3, 1];
const arr2 = [1, 7, 3, 1, 6];
const uniqueIntersection = (arr1, arr2) => {
   const map = new Set();
   const res = [];
   arr1.forEach(el => map.add(el));
   arr2.forEach(el => {
      if (map.has(el)) {
         res.push(el);
         map.delete(el);
      };
   });
   return res;
};
console.log(uniqueIntersection(arr1, arr2));

输出

以下是控制台上的输出 −

[1, 7, 3]

更新于: 10-Dec-2020

251 浏览

开启你的 职业生涯

完成课程并获得认证

开始
广告