JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
P粉592085423
2023-08-23 11:09:10
<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>
2019 更新: この回答は 2008 年 (11 年前!) のもので、最新の JS の使用法とは何の関係もありません。約束されたパフォーマンスの向上は、その時点でブラウザーで完了したベンチマーク テストに基づいています。最新の JS 実行コンテキストには関連しない可能性があります。簡単な解決策が必要な場合は、他の回答を探してください。最高のパフォーマンスが必要な場合は、関連する実行環境でベンチマークを行ってください。
他の人が言っているように、配列を反復処理するのがおそらく最良の方法ですが、下降 while ループが最も高速に反復処理できることが
もちろん、Array プロトタイプを拡張することもできます:証明されています。 JavaScript 。したがって、次のようにコードを書き直す必要がある場合があります:
リーリーリーリー
これで、次のように単純に使用できるようになります:リーリー
最近のブラウザには
Array#includes
があり、これは まさにその機能を実行し、 IE サポートを除くすべての人に広く使用されています: