使用 JavaScript 从数组中删除所有重复项 [重复]

Posted

技术标签:

【中文标题】使用 JavaScript 从数组中删除所有重复项 [重复]【英文标题】:Drop all duplicates from array using JavaScript [duplicate] 【发布时间】:2021-07-20 02:47:21 【问题描述】:

我有一个带有如下输入的对象数组

var jsonArray1 = [id:'1',name:'John',id:'2',name:'Smith',id:'3',name:'Adam',id:'1',name:'John']

id 1 出现两次,我想删除所有重复的记录。即我的输出应该是这样的

[id:'2',name:'Smith',id:'3',name:'Adam']

您能否指导/指导我如何删除所有重复记录

【问题讨论】:

没有 JSON 数组这样的东西。 jsonArray1 是一个对象数组,仅此而已。 这是一个类似的问题:remove all elements that occur more than once from array 您需要为对象实现相同的功能 【参考方案1】:

Map 的键是您想要的id 的数组创建Map,不会保留重复的(仅最后一次出现)。从Map 获取值后。

删除所有出现的重复项(这是 OP 想要的):

const input = [id:'1',name:'John',
               id:'2',name:'Smith',
               id:'3',name:'Adam',
               id:'1',name:'John']

const res = input.filter((x, i, arr) => 
                          arr.filter(e => e.id === x.id).length === 1)
console.log(res)

保留 1 次重复:

const input = [id:'1',name:'John',
               id:'2',name:'Smith',
               id:'3',name:'Adam',
               id:'1',name:'John']

const unique = [...new Map(input.map(item => [item.id, item])).values()]
console.log(unique)

【讨论】:

它只删除重复的记录。我的要求是删除发现重复的所有此类事件。输出应该只是 [ "id": "2", "name": "Smith" , "id": "3", "name": "Adam" ] 我的错,已更新,立即查看。

以上是关于使用 JavaScript 从数组中删除所有重复项 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

javascript 从javascript中的对象数组中删除重复项

javascript 从数组中删除重复项

javascript 从数组中删除重复项

javascript [26。从排序数组中删除重复项] #tags:leetcode

如何从 Javascript 中的数组中删除重复项?

从 JS 数组中删除重复值 [重复]