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教程: