删除typescript/javascript中2个数组中的交集

删除typescript/javascript中2个数组中的交集,javascript,typescript,lodash,Javascript,Typescript,Lodash,我有2个对象列表和2个字段: let users1 = [{ name: 'barney', uuid: 'uuid3'}, { name: 'barney', uuid: 'uuid1'}, { name: 'barney', uuid: 'uuid2'}]; let users2 = [{ name: 'joe', uuid:'uuid5'}, { name: 'joe', uuid: 'uuid

我有2个对象列表和2个字段:

let users1 = [{ name: 'barney',  uuid: 'uuid3'},
              { name: 'barney',  uuid: 'uuid1'},
              { name: 'barney',  uuid: 'uuid2'}];

let users2 = [{ name: 'joe',  uuid:'uuid5'},
              { name: 'joe',  uuid: 'uuid1'}, 
              { name: 'joe',  uuid: 'uuid2'}];
我想删除每个列表中与uuid相交的对象

let users1 = [{ name: 'barney',  uuid: 'uuid3'}]; // object with uuid1 and uuid2 deleted
let users2 = [{ name: 'joe',  uuid:'uuid5'}];     // object with uuid1 and uuid2 deleted
在下面的代码中,我从obj列表中提取UUID,并将它们分别放入一个新数组中

let a =[];  
let b = [];
a = users1.map(s => s.uuid); // uuids from list 1 ['uuid3', 'uuid1', 'uuid2']
b = users2.map(s => s.uuid); // uuids from list 2 ['uuid5', 'uuid1', 'uuid2']
然后使用lodash获得交点:

let e = [];
e = _.intersection(a,b); // intersection = [uuid1, uuid2] 
我们可以使用列表e来删除users1和users2

但是我真的不知道如何删除


如果您有任何想法、建议或示例,我们将不胜感激。

删除交叉点实际上是在查找差异-通过查找其他用户上不存在的带有
uuid
的项目来过滤每个用户:

const users1=[{name:'barney',uuid:'uuid3'},
{name:'barney',uuid:'uuid1'},
{name:'barney',uuid:'uuid2'}];
const users2=[{name:'joe',uuid:'uuid5'},
{name:'joe',uuid:'uuid1'},
{name:'joe',uuid:'uuid2'}];
const user1n=u.differenceBy(users1,users2,'uuid');
const user2n=u.differenceBy(users2,users1,'uuid');
console.log(user1n);
console.log(user2n)