查找多个数组的交集 - JavaScript
javascriptweb developmentfront end technologyobject oriented programming
我们需要编写一个 JavaScript 函数,该函数接受任意数量的数组并返回所有数组共有的元素数组。如果没有共同元素,那么我们应该返回一个空数组。
假设以下是我们的数组 −
const arr1 = [2, 6, 7, 1, 7, 8, 4, 3]; const arr2 = [5, ,7, 2, 2, 1, 3]; const arr3 = [1, 56, 345, 6, 54, 2, 68, 85, 3];
示例
以下是代码 −
const arr1 = [2, 6, 7, 1, 7, 8, 4, 3]; const arr2 = [5, ,7, 2, 2, 1, 3]; const arr3 = [1, 56, 345, 6, 54, 2, 68, 85, 3]; const intersection = (arr1, arr2) => { const res = []; for(let i = 0; i < arr1.length; i++){ if(!arr2.includes(arr1[i])){ continue; }; res.push(arr1[i]); }; return res; }; const intersectMany = (...arrs) => { let res = arrs[0].slice(); for(let i = 1; i < arrs.length; i++){ res = intersection(res, arrs[i]); }; return res; }; console.log(intersectMany(arr1, arr2, arr3));
输出
这将在控制台中产生以下输出 −
[2, 1, 3]