var a = [1, 3]
var b = [1, 2, 11, 44, 45, 36]
console.log("数组a:", a);
console.log("数组b:", b);
var sa = new Set(a);
var sb = new Set(b);
// 交集
let intersect = a.filter(x => sb.has(x));
// 差集
let minus = b.filter(x => !sa.has(x));
// 补集
let complement = [...a.filter(x => !sb.has(x)), ...b.filter(x => !sa.has(x))];
// 并集
let unionSet = Array.from(new Set([...a, ...b]));
console.log("a与b的交集:", intersect);
console.log("b与a的差集:", minus);
console.log("a与b的补集:", complement);
console.log("a与b的并集:", unionSet);
数组里面的每一项是对象,求两个数组的差集
let arr1 = [
{
name:'zhangsan',
age:18
},
{
name:'lisi',
age:20
},
]
let arr2 = [
{
name:'zhangsan',
age:18
},
{
name:'lisi',
age:20
},
{
name:'wangwu',
age:22
},
]
// 求arr2和arr1的差集
let arr3 = arr2.filter(item => {
let str = JSON.stringify(item)
return arr1.every(item => JSON.stringify(item) !== str)
})
