对象的补集,差集等

    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)
})

posted @ 2021-11-12 13:43  Life_countdown  阅读(72)  评论(0)    收藏  举报