ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 配列内の重複する値を効率的に見つけるにはどうすればよいですか?

JavaScript 配列内の重複する値を効率的に見つけるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-15 15:20:23372ブラウズ

How Can I Efficiently Find Duplicate Values in a JavaScript Array?

配列内の非一意な値の検索

JavaScript 配列内の重複値の特定は一般的なタスクです。配列を反復処理して各要素を他の要素と比較するのは単純なアプローチのように思えるかもしれませんが、特に大規模な配列の場合は非効率的になる可能性があります。

最適化されたソリューションの 1 つは、最初に配列をソートすることです。このステップでは、同様の要素をグループ化することで、複雑さを O(n^2) から O(n^2) 未満に軽減します。

配列がソートされたら、それを反復処理して、現在の要素が正しいかどうかを確認できます。次または前の要素と一致します。それらが同じ場合、値は重複とみなされ、結果リストに追加できます。

const findDuplicates = (arr) => {
  let sorted_arr = arr.slice().sort();
  let results = [];
  for (let i = 0; i < sorted_arr.length - 1; i++) {
    if (sorted_arr[i + 1] == sorted_arr[i]) {
      results.push(sorted_arr[i]);
    }
  }
  return results;
};

たとえば、[9, 9, 111, 2, 3, 4, 4, 5, 7] の場合、このアプローチは重複する値 [9, 4] を効率的に特定して返します。

隣接する要素の並べ替えと比較を活用することで、このソリューションは配列内の非一意の値を見つけるための時間効率の高い方法を提供します。

以上がJavaScript 配列内の重複する値を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。