Rap*_*nah 3 javascript arrays intersection
使用ES6 Set,给定两个数组,我们可以像这样得到交集:
let a = new Set([1,2,3])
let b = new Set([1,2,4])
let intersect = new Set([...a].filter(i => b.has(i)));
Run Code Online (Sandbox Code Playgroud)
我们怎样才能获得n数组的交集?
更新:
我试图围绕这个用于以下用例.我有一个至少有一个元素的二维数组.
parts.forEach(part => {
intersection = new Set()
})
Run Code Online (Sandbox Code Playgroud)
你如何获得每个元素(数组)的交集parts?
假设您有一些function intersect(set1, set2) {...}可以交叉两个集合的函数,您可以使用以下方法获取集合数组的交集reduce:
function intersect(a, b) {
return new Set(a.filter(i => b.has(i)));
}
var sets = [new Set([1,2,3]), ...];
var intersection = sets.reduce(intersect);
Run Code Online (Sandbox Code Playgroud)