javascript:构造一个函数,比较输入数组并返回一个新数组,其中包含在所有输入中找到的元素
我试图构造一个函数交集,它比较输入数组并返回一个新数组,其中包含在所有输入中找到的元素 下面是我的代码:javascript:构造一个函数,比较输入数组并返回一个新数组,其中包含在所有输入中找到的元素,javascript,arrays,function,loops,intersection,Javascript,Arrays,Function,Loops,Intersection,我试图构造一个函数交集,它比较输入数组并返回一个新数组,其中包含在所有输入中找到的元素 下面是我的代码: function intersection (arr){ let newArray = []; let concatArray = arr.reduce((a,e) => a.concat(e), []) //let uniqueArray = Array.from(new Set(concatArray)); // console.log(concatArra
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]
功能交叉口(arr){
设newArray=[];
让concatArray=arr.reduce((a,e)=>a.concat(e),[]))
//让uniqueArray=Array.from(新集合(concatArray));
//控制台日志(concatArray)
对于(设i=0;i您只需使用.filter()
和.every()
方法即可获得所需的输出:
const arr1=[5,10,15,20];
常数arr2=[15,88,1,5,7];
常数arr3=[1,10,15,5,20];
常量交点=([first,…rest])=>first.filter(
v=>rest.every(arr=>arr.includes(v))
);
console.log(交叉点([arr1,arr2,arr3]);