如何在javascript中比较两个对象数组并删除重复项
所以我有以下问题。我有两个对象数组。Array1包含许多对象,Array2包含这些对象的一部分:如何在javascript中比较两个对象数组并删除重复项,javascript,arrays,duplicates,javascript-objects,Javascript,Arrays,Duplicates,Javascript Objects,所以我有以下问题。我有两个对象数组。Array1包含许多对象,Array2包含这些对象的一部分: array1: [{"first_name": "Wanda", "id": 27, "last_name": "Walhai"}, {"first_name": "Victoria"
array1: [{"first_name": "Wanda",
"id": 27,
"last_name": "Walhai"},
{"first_name": "Victoria",
"id": 26,
"last_name": "Viperfisch"}]
array2: [{"first_name": "Victoria",
"id": 26,
"last_name": "Viperfisch"}]
我要做的是删除array1中array2也包含的所有对象(重复项)。因此,新阵列1应如下所示:
array1: [{"first_name": "Wanda",
"id": 27,
"last_name": "Walhai"}]
有人能帮我用javascript实现这一点吗?非常感谢。您可以对所有标识符使用
集,并使用它过滤掉另一个数组中显示的id
s
函数filterByd(mainArr、filterArr){
让idSet=newset(filterArr.map(obj=>obj.id));
返回mainArr.filter(obj=>!idSet.has(obj.id));
}
这将删除mainArr
中所有具有特定id
且显示在filterArr
中的对象
示例如下:
让arr=[{
“名字”:“万达”,
“id”:27,
“姓”:“瓦尔海”
},
{
“名字”:“维多利亚”,
“id”:26,
“姓氏”:“Viperfisch”
}
]
让过滤器RR=[{
“名字”:“维多利亚”,
“id”:26,
“姓氏”:“Viperfisch”
}]
功能过滤器BYID(mainArr、filterArr){
让idSet=newset(filterArr.map(obj=>obj.id));
返回mainArr.filter(obj=>!idSet.has(obj.id));
}
日志(filterById(arr,filterArr))
id是唯一标识符吗?@是is@Tönner是的抱歉,我知道您想删除第二个阵列上的对象。顺序颠倒了,示例已修复。非常感谢您花时间。。它工作得很好