小编die*_*nez的帖子

使用Set从数组中删除重复项,并保持最高ID

我有这个数组:

array = [{id: 1, name: 'apple'}, {id: 2, name: 'banana'}, {id: 3, name: 
'apple'}]
Run Code Online (Sandbox Code Playgroud)

我需要删除具有重复属性“名称”的对象,并且需要为其余对象保留最高的ID,如下所示:

newarray = [ {id: 2, name: 'banana'}, {id: 3, name: apple}]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这种方式:

array = [{id: 1, name: 'apple'}, {id: 2, name: 'banana'}, {id: 3, name: 
apple}]

newarray = Array.from(new Set(array.map(x => x.id)))
                 .map(id => {
                   return {
                     id: id,
                     name: array.find( s => s.id === id).name
})
Run Code Online (Sandbox Code Playgroud)

结果我得到

newarray = [ {id: 2, name: 'banana'}, {id: 1, name: apple}]
Run Code Online (Sandbox Code Playgroud)

我删除了重复的对象,但是我没有为每个剩余的对象获得最高的ID。

谢谢你给我一个主意。

javascript arrays typescript ecmascript-6 ionic-framework

0
推荐指数
1
解决办法
72
查看次数