ES6 の配列からすべての重複要素を抽出する

データ構造のSetを使って、重複するすべての項目をスクリーニングできます。SetはES6で追加された一種のデータ構造であり、配列に似ていますが、メンバーの値はすべて一意であり、重複する値はありません。

リストから重複を削除するSetの利用を示すサンプルコード:

const arr = [1, 2, 3, 4, 4, 5, 6, 6, 7, 8];
const set = new Set();
const duplicateItems = arr.filter((item) => {
if (set.has(item)) {
return true;
} else {
set.add(item);
return false;
}
});
console.log(duplicateItems); // 输出 [4, 6]

最初に、空のSetインスタンスを作成します。そして、filterメソッドを使って配列の各要素を走査します。Setにその要素がすでに存在する場合、重複とみなして返します。そうでない場合、要素をSetに追加し、falseを返します。最終的に、フィルタリングされた重複はduplicateItemsの配列となります。

この方法の時間計算量は O(n) で、効率が高いです。

bannerAds