首页 > 解决方案 > 如何使用 reduce 计算多个数组的交集?

问题描述

例子:

myArray = [[1,2,3,4],
           [2,3,4,5], 
           [3,4,5,6]
          ];

预期输出:

newArray = [3,4]

如何使用所有 3 个数组中的值生成一个新数组?

标签: javascriptarraysreduce

解决方案


在归约时,返回累加器与当前迭代的子数组的交集:

const myArray = [[1,2,3,4], [2,3,4,5], [3,4,5,6]];
const intersection = myArray.reduce((a, arr) => (
  a.filter(num => arr.includes(num))
));
console.log(intersection);


推荐阅读