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チュートリアル: