簡単に配列同士の積集合を求めると
配列に重複がない場合
const arr0 = [1,2,3,4,5]
const arr1 = [1,3,5,7,9]
const productSet = arr0.filter((val)=>{
return arr1.indexOf(val) !== -1
})
console.log(productSet)
// [ 1, 3, 5 ]
というように求められますが、配列に重複があった場合には
const arr0 = [1,2,2,5,5]
const arr1 = [1,3,5,7,9]
const productSet = arr0.filter((val)=>{
return arr1.indexOf(val) !== -1
})
console.log(productSet)
// [ 1, 5, 5 ]
のようになってしまいます
配列に重複があるかもしれない場合
なので配列に重複の可能性がある場合には下記の様に最後setを使用してユニークにします。
const arr0 = [1,2,2,5,5]
const arr1 = [1,3,5,7,9]
const productSet = arr0.filter((val)=>{
return arr1.indexOf(val) !== -1
})
const uniqueProductSet = Array.from(new Set(productSet))
console.log(uniqueProductSet)
// [ 1, 5 ]