我试图构造一个函数交集,用于比较输入数组并返回一个新数组,其中包含在所有输入中找到的元素。
下面是我的代码:
function intersection (arr){
let newArray = [];
let concatArray = arr.reduce((a,e) => a.concat(e), [])
//let uniqueArray = Array.from(new Set(concatArray));
// console.log(concatArray)
for (let i=0; i<concatArray.length; i++){
let element = concatArray[i];
concatArray.shift()
if (concatArray.includes(element)){
newArray.push(element);
}
}
return newArray;
}
const arr1 = [5, 10, 15, 20];
const arr2 = [15, 88, 1, 5, 7];
const arr3 = [1, 10, 15, 5, 20];
console.log(intersection([arr1, arr2, arr3])); // should log: [5, 15]
我的代码返回:
[ 5, 15, 15, 1, 7, 10, 5 ]
这太离谱了
我做错了什么?