Javascript 如何删除重复和筛选数组对象,如下所述

Javascript 如何删除重复和筛选数组对象,如下所述,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,让array1=[{id:562,name:“Eva Bridal”},{id:582,name:“Finger Touch”},] let array2=[{id:575,名称:“沙龙大酒店”},{id:562,名称:“伊娃新娘”}] 最终输出: let newarray = [{id: 582, name: "Finger Touch"},{id: 575, name: "Saloon Grand"} ] 将array1中的所有项目以及array2中未在array1中找到的项目添加到结果数

让array1=[{id:562,name:“Eva Bridal”},{id:582,name:“Finger Touch”},]

let array2=[{id:575,名称:“沙龙大酒店”},{id:562,名称:“伊娃新娘”}]

最终输出:

let newarray = [{id: 582, name: "Finger Touch"},{id: 575, name: "Saloon Grand"} ]

array1
中的所有项目以及
array2
中未在
array1
中找到的项目添加到结果数组中

这在数组文本中使用扩展语法,并使用
.filter()
.find()
排除重复项

let array1=[{id:562,name:“Eva Bridal”},{id:582,name:“Finger Touch”},];
让array2=[{id:575,名称:“沙龙大酒店”},{id:562,名称:“伊娃新娘”}];
var结果=[
…array1.filter(o=>!array2.find(o2=>o.id==o2.id)),
…array2.filter(o=>!array1.find(o2=>o.id==o2.id))
];

控制台日志(结果)我假设一个副本可以出现多次(即3个具有相同id的项目)。如果是这种情况,您可以使用保存现有ID。这两个数组,并用于创建。如果集合中存在项目的
id
,请将其从映射中删除,如果不存在,请将项目添加到映射中,并将其
id
添加到集合中。当reduce进程结束时,获取和到一个数组:

const array1=[{id:562,名称:“Eva Bridal”},{id:582,名称:“手指触摸”}]
const array2=[{id:575,名称:“豪华轿车”},{id:562,名称:“伊娃新娘”}]
const existing=新集合();
常量结果=[…数组1.concat(数组2).reduce((r,o)=>{
如果(现有的有(o.id)){
r、 删除(o.id);
}否则{
现有。添加(o.id);
r、 设置(o.id,o);
}
返回r;
},新映射)。值();

控制台日志(结果)因此,如果存在重复项,则应将两者都删除?请显示您已尝试的内容。Stackoverflow不是免费的代码编写服务。我们的目标是让你展示你的代码尝试,让人们帮助你解决代码中的错误,但不会产生预期的结果。你是对的。所以OP希望两个副本都被删除。我会更新它的。大家好,如何得到像这样的唯一数组2项最终结果[{“id”:575,“name”:“Saloon Grand”}]