Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中比较两个对象数组并删除重复项_Javascript_Arrays_Duplicates_Javascript Objects - Fatal编程技术网

如何在javascript中比较两个对象数组并删除重复项

如何在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包含许多对象,Array2包含这些对象的一部分:

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是的抱歉,我知道您想删除第二个阵列上的对象。顺序颠倒了,示例已修复。非常感谢您花时间。。它工作得很好