https://blog.csdn.net/piaojiancong/article/details/98199541es6
ES5
const arr1 = [1,2,3,4,5],
arr2 = [5,6,7,8,9];數組
// 交集
let intersection = arr1.filter(function (val) { return arr2.indexOf(val) > -1 })url
// 並集
let union = arr1.concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) }))spa
// 補集 兩個數組各自沒有的集合
let complement = arr1.filter(function (val) { return !(arr2.indexOf(val) > -1) })
.concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) })).net
// 差集 數組arr1相對於arr2所沒有的
let diff = arr1.filter(function (val) { return arr2.indexOf(val) === -1 })blog
es6
const arr1 = [1,2,3,4,5],
arr2 = [5,6,7,8,9],
_arr1Set = new Set(arr1),
_arr2Set = new Set(arr2);get
// 交集
let intersection = arr1.filter(item => _arr2Set.has(item))it
// 並集
let union = Array.from(new Set([...arr1, ...arr2]))io
// 補集 兩個數組各自沒有的集合
let complement = [...arr1.filter(item => !_arr2Set.has(item)), ...arr2.filter(item => !_arr1Set.has(item))]function
// 差集 數組arr1相對於arr2所沒有的let diff = arr1.filter(item => !_arr2Set.has(item))