JavaScript,如何在数组中查找重复项

如何在JavaScript数组中查找和删除重复项

如果要删除重复项,可以使用JavaScript提供的Set数据结构,这是一种非常简单的方法。这是单线的:

const yourArrayWithoutDuplicates = [...new Set(yourArray)]

要查找哪些元素是重复项,可以使用我们获得的“没有重复项的数组”,然后从原始数组内容中删除它包含的每个项目:

const yourArray = [1, 1, 2, 3, 4, 5, 5]

const yourArrayWithoutDuplicates = […new Set(yourArray)]

let duplicates = […yourArray] yourArrayWithoutDuplicates.forEach((item) => { const i = duplicates.indexOf(item) duplicates = duplicates .slice(0, i) .concat(duplicates.slice(i + 1, duplicates.length)) })

console.log(duplicates) //[ 1, 5 ]

另一个解决方案是对数组进行排序,然后检查“下一项”是否与当前项相同,然后将其放入数组中:

const yourArray = [1, 1, 2, 3, 4, 5, 5]

let duplicates = []

const tempArray = […yourArray].sort()

for (let i = 0; i < tempArray.length; i++) { if (tempArray[i + 1] === tempArray[i]) { duplicates.push(tempArray[i]) } }

console.log(duplicates) //[ 1, 5 ]

请注意,这仅适用于原始值,不适用于对象。对于对象,您需要一种比较它们的方法。

免费下载我的JavaScript初学者手册


更多js教程: