多个数组求交集

给你一个二维整数数组 nums ,其中 nums[i] 是由 不同 正整数组成的一个非空数组,按 升序排列 返回一个数组,数组中的每个元素在 nums 所有数组 中都出现过。

  • 输入:nums = [[3,1,2,4,5],[1,2,3,4],[3,4,5,6]]

  • 输出:[3,4]
    解释: nums[0] = [3,1,2,4,5],nums[1] = [1,2,3,4],nums[2] = [3,4,5,6],在 nums 中每个数组中都出现的数字是 3 和 4 ,所以返回 [3,4] 。

  • 输入:nums = [[1,2,3],[4,5,6]]

  • 输出:[]
    解释:
    不存在同时出现在 nums[0] 和 nums[1] 的整数,所以返回一个空列表 [] 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var intersection = function(nums) {
const map = {}
const l = nums.length
nums.forEach(item => {
item.forEach(c => {
if (!map[c]) {
map[c] = 1
} else {
map[c]++
}
})
})
return Object.entries(map).filter(item => item[1] === l).map(item => item[0]).sort((a, b) => a - b)
};