有以下数据:
let a = new Set([
{
'categoryId': 1,
'categoryIdLevelOne': 750611334,
'categoryIdLevelThree': 750611336,
'categoryIdLevelTwo': 750611335,
'id': 2697,
'level': 3,
'shopId': 12430,
'skipLayoutFlag': false,
'status': 1
},
{
'categoryId': 2,
'categoryIdLevelOne': 750611472,
'categoryIdLevelTwo': 750611473,
'id': 2701,
'level': 2,
'shopId': 12430,
'skipLayoutFlag': false,
'status': 2
},
{
'categoryId': 3,
'categoryIdLevelOne': 750611487,
'categoryIdLevelTwo': 750611488,
'id': 2702,
'level': 2,
'shopId': 12430,
'skipLayoutFlag': false,
'status': 1
}
])
let b = new Set([
{
'categoryId': 2,
'categoryIdLevelOne': 750611334,
'categoryIdLevelThree': 750611336,
'categoryIdLevelTwo': 750611335,
'id': 2697,
'level': 3,
'shopId': 12430,
'skipLayoutFlag': false,
'status': 1
},
{
'categoryId': 3,
'categoryIdLevelOne': 750611472,
'categoryIdLevelTwo': 750611473,
'id': 2701,
'level': 2,
'shopId': 12430,
'skipLayoutFlag': false,
'status': 2
},
{
'categoryId': 4,
'categoryIdLevelOne': 750611487,
'categoryIdLevelTwo': 750611488,
'id': 2702,
'level': 2,
'shopId': 12430,
'skipLayoutFlag': false,
'status': 1
}
])
交集
[...a].filter(x => [...b].some(y => y.categoryId === x.categoryId))
//或者
Array.from(a).filter(x => Array.from(b).some(y => y.categoryId === x.categoryId))
差集
[...a].filter(x => [...b].every(y => y.categoryId !== x.categoryId))
去重
this.selectTable = this.selectTable.reduce(function(item, next) {
hash[next.id] ? "" : (hash[next.id] = true && item.push(next));
return item;
}, []);