// 获取多个数组之中交集部分
let inters = (...args) => {
let result = [];
let len = args.length;
// 传入的每个数组去重
for(let key in args){
if(Array.isArray(args[key])){
args[key] = [...new Set( args[key])]
}
}
// 数组扁平化
while (args.some(item => Array.isArray(item))) {
args = [].concat(...args);
};
// 获取数组每一项的重复次数
let frequency = args.reduce((prev,next) => {
prev[next] = (prev[next] + 1) || 1;
return prev;
},{});
// 判断每一项的重复次数是否与传入的数组长度相同
for(let k in frequency){
if(frequency[k] === len){
if (!isNaN(k)) {
result.push(parseInt(k));
}else{
result.push(k);
}
}
}
return result;
};
let newArr = inters([11,'a','b', 2, 5, 7, 6, 3], [2, 'a',3, 5, 7, 11, 6, 4], [23, 3,'a', 5, 2]);
console.log(newArr);