Javascript 从数组中删除与另一个对象数组相同的对象

Javascript 从数组中删除与另一个对象数组相同的对象,javascript,arrays,Javascript,Arrays,我有两个数组,分别是数组1和数组2,我想从数组1中删除数组2的对象。我可以同时删除多个对象 数组1的数据 数组2的数据 结果 如果id属性是唯一的,则可以使用它进行筛选 设arr1=[ {id:1,txt:first}, {id:2,txt:second}, {id:3,txt:third} ] 设arr2=[ {id:2,txt:second}, ] 让arr3=arr1.filtere1=>!arr2.some2=>e2.id==e1.id; console.logarr3 如果id属性是

我有两个数组,分别是数组1和数组2,我想从数组1中删除数组2的对象。我可以同时删除多个对象

数组1的数据

数组2的数据

结果

如果id属性是唯一的,则可以使用它进行筛选

设arr1=[ {id:1,txt:first}, {id:2,txt:second}, {id:3,txt:third} ] 设arr2=[ {id:2,txt:second}, ] 让arr3=arr1.filtere1=>!arr2.some2=>e2.id==e1.id; console.logarr3 如果id属性是唯一的,则可以使用它进行筛选

设arr1=[ {id:1,txt:first}, {id:2,txt:second}, {id:3,txt:third} ] 设arr2=[ {id:2,txt:second}, ] 让arr3=arr1.filtere1=>!arr2.some2=>e2.id==e1.id;
console.logarr3 如果要求在对象之间执行深度相等检查,那么我们可以使用lodash的isEqual与Arrayfilter和Arraysome一起执行深度相等检查:

设arr1=[ {id:1,txt:first}, {id:2,txt:second}, {id:3,txt:third} ] 设arr2=[ {id:2,txt:second}, ] 常量过滤器arr=arr1,arr2=>{ 返回arr1.filtera1=>!arr2.somea2=>\u0.isEquala1,a2 } console.LogFilterArrr1、arr2
如果要求在对象之间执行深度相等检查,那么我们可以使用lodash的isEqual与Arrayfilter和Arraysome一起执行深度相等检查:

设arr1=[ {id:1,txt:first}, {id:2,txt:second}, {id:3,txt:third} ] 设arr2=[ {id:2,txt:second}, ] 常量过滤器arr=arr1,arr2=>{ 返回arr1.filtera1=>!arr2.somea2=>\u0.isEquala1,a2 } console.LogFilterArrr1、arr2
我会使用arr2.some,因为它返回一个布尔值,尽管结果是same@HaoWu我同意。谢谢你的建议。我会使用arr2.some,因为它返回一个布尔值,尽管结果是same@HaoWu我同意。谢谢你的建议。
let arr1 = [    
    { id: "1", txt: "first"},
    { id: "2", txt: "second"},
    { id: "3", txt: "third"}
 ]
let arr2 = [
    { id: "2", txt: "second"},
]
{ id: "1", txt: "first"},
{ id: "3", txt: "third"}