JavaScript 配列内の要素のすべてのインデックスを検索する方法

Mary-Kate Olsen
リリース: 2024-11-01 00:26:02
オリジナル
194 人が閲覧しました

How to Find All Indexes of an Element in a JavaScript Array?

配列内の要素出現のインデックスを取得する方法

配列内の要素のすべてのインスタンスのインデックスを識別することは、一般的なプログラミング タスクです。 JavaScript では、配列は .indexOf() や .includes() などのメソッドを提供しますが、最初または最後の出現のみを返します。すべてのインスタンスのインデックスを取得するには、別のアプローチが必要です。

ループと .indexOf() の使用

効果的な方法の 1 つは、.indexOf() を使用して要素の出現を繰り返しチェックすることです。次の関数は、このアプローチを示しています。

<code class="js">function getAllIndexes(arr, val) {
  var indexes = [], i = -1;
  while ((i = arr.indexOf(val, i + 1)) != -1) {
    indexes.push(i);
  }
  return indexes;
}</code>
ログイン後にコピー

この関数では、開始インデックスを増加させて .indexOf() メソッドが繰り返し呼び出されます。指定された値のインスタンスが見つかるたびに、対応するインデックスがインデックス配列に追加されます。

標準 For ループの使用

もう 1 つの効率的な方法は、単純な for ループです。

<code class="js">function getAllIndexes(arr, val) {
  var indexes = [], i;
  for (i = 0; i < arr.length; i++) {
    if (arr[i] === val) {
      indexes.push(i);
    }
  }
  return indexes;
}</code>
ログイン後にコピー

この for ループは配列を反復処理し、各要素を指定された値と比較します。一致が見つかると、ループはそのインデックスをインデックス配列に追加します。

使用例

これらのアプローチは両方とも、要素「Nano」のすべての出現のインデックスを見つけるために使用できます。配列 Cars 内:

<code class="js">var Cars = ["Nano", "Volvo", "BMW", "Nano", "VW", "Nano"];

var indexes = getAllIndexes(Cars, "Nano");</code>
ログイン後にコピー

indexes 変数には、Cars 配列内の「Nano」のすべてのインスタンスのインデックスを含む配列が含まれます: [0, 3, 5]。

以上がJavaScript 配列内の要素のすべてのインデックスを検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!