使用ES6的Set求数组的交集、并集、差集 发表于 2020-05-28 | 分类于 ES6 | 阅读次数: 原理利用Set的 .has(value) 方法 ,判断值是否为 Set 的成员,并组合数组的 .filter()方法,返回新的数组。 简单的数组1234567891011const arr1 = [1, 2, 3, 4]const arr2 = [3, 4, 5]// 并集const merge1 = [...arr1, ...arr2])]// 交集const intersect = [...new Set([...arr1].filter(item => arr2.has(item)))]// 差集const diff = [...new Set([...arr1].filter(item => !arr2.has(item)))] 带对象的数组1234567891011121314const arr1 = [ { id:1, a:123, b:1234 }, { id:2, a:123, b:1234 }, { id:3, a:123, b:1234 }]const arr2 = [ { id:2, a:123, b:1234 }]// 交集const intersect = [...arr1].filter(item1 => [...arr2].some(item2 => item2.id === item1.id))// 差集const diff = [...arr1].filter(item1 => [...arr2].every(item2 => item2.id !== item.id)) -------------本文结束感谢您的阅读-------------