ホームページ  >  に質問  >  本文

JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?

<p>JavaScript 配列に値が含まれているかどうかを確認する最もクリーンで効率的な方法は何ですか? </p> <p>これが私が知っている唯一の方法です:</p> <pre class="brush:php;toolbar:false;">function contains(a, obj) { for (var i = 0; i < a.length; i ) { if (a[i] === obj) { true を返します。 } } false を返します。 }</pre> <p>これを達成するための、より適切でクリーンな方法はありますか? </p> <p>これはスタック オーバーフローの質問に関連しています<em>JavaScript 配列内の項目を検索する最良の方法は何ですか? </em> 密接に関連していますが、この質問は <code>indexOf</code> を使用して配列内のオブジェクトを検索する方法について説明しています。 </p>
P粉592085423P粉592085423424日前415

全員に返信(2)返信します

  • P粉788571316

    P粉7885713162023-08-24 00:43:22

    2019 更新: この回答は 2008 年 (11 年前!) のもので、最新の JS の使用法とは何の関係もありません。約束されたパフォーマンスの向上は、その時点でブラウザーで完了したベンチマーク テストに基づいています。最新の JS 実行コンテキストには関連しない可能性があります。簡単な解決策が必要な場合は、他の回答を探してください。最高のパフォーマンスが必要な場合は、関連する実行環境でベンチマークを行ってください。

    他の人が言っているように、配列を反復処理するのがおそらく最良の方法ですが、下降 while ループが最も高速に反復処理できることが 証明されています。 JavaScript 。したがって、次のようにコードを書き直す必要がある場合があります: リーリー

    もちろん、Array プロトタイプを拡張することもできます:

    リーリー

    これで、次のように単純に使用できるようになります:

    リーリー

    返事
    0
  • P粉076987386

    P粉0769873862023-08-24 00:14:12

    最近のブラウザには Array#includes があり、これは まさにその機能を実行し、 IE サポートを除くすべての人に広く使用されています:

    リーリー

    返事
    0
  • キャンセル返事