使用 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中的对象数组中删除重复项