1. // 获取多个数组之中交集部分
    2. let inters = (...args) => {
    3. let result = [];
    4. let len = args.length;
    5. // 传入的每个数组去重
    6. for(let key in args){
    7. if(Array.isArray(args[key])){
    8. args[key] = [...new Set( args[key])]
    9. }
    10. }
    11. // 数组扁平化
    12. while (args.some(item => Array.isArray(item))) {
    13. args = [].concat(...args);
    14. };
    15. // 获取数组每一项的重复次数
    16. let frequency = args.reduce((prev,next) => {
    17. prev[next] = (prev[next] + 1) || 1;
    18. return prev;
    19. },{});
    20. // 判断每一项的重复次数是否与传入的数组长度相同
    21. for(let k in frequency){
    22. if(frequency[k] === len){
    23. if (!isNaN(k)) {
    24. result.push(parseInt(k));
    25. }else{
    26. result.push(k);
    27. }
    28. }
    29. }
    30. return result;
    31. };
    32. let newArr = inters([11,'a','b', 2, 5, 7, 6, 3], [2, 'a',3, 5, 7, 11, 6, 4], [23, 3,'a', 5, 2]);
    33. console.log(newArr);