如何比较两个数组中的数据并在javascript中返回不匹配的数组?

如何比较两个数组中的数据并在javascript中返回不匹配的数组?,javascript,Javascript,这是我的问题陈述 我有两个数组 assignedArr = [{ id: 'abc1' }, { id: 'abc2' }, { id: 'abc3' }]; unAssignedArr = [{ id: 'abc1' }, { id: 'abc2' }, { id: 'abc3'}, { id: 'abc4' }]; 我必须将assingedArr与unAssignedArr进行比较,并返回不匹配的数组项 比如在上面的例子中 结果应该是 newArr = [{ id: 'abc4'

这是我的问题陈述

我有两个数组

assignedArr = [{ id: 'abc1' }, { id: 'abc2' }, { id: 'abc3' }];

 unAssignedArr = [{ id: 'abc1' }, { id: 'abc2' }, { id: 'abc3'}, { id: 'abc4' }];
我必须将assingedArr与unAssignedArr进行比较,并返回不匹配的数组项

比如在上面的例子中

结果应该是

   newArr = [{ id: 'abc4' }];
就像苏


任何建议都会非常有用

您可以使用array
array.prototype.filter
array.prototype.some
方法来获得结果

const assignedArr=[{id:'abc1'},{id:'abc2'},{id:'abc3'}];
常量unAssignedArr=[
{id:'abc1'},
{id:'abc2'},
{id:'abc3'},
{id:'abc4'},
];
常数ret=[
…unAssignedArr.filter((x)=>!assignedArr.some((y)=>x.id==y.id)),
…assignedArr.filter((x)=>!unAssignedArr.some((y)=>x.id==y.id)),
];
控制台日志(ret)