// 获取多个数组之中交集部分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);