ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 配列内の要素のすべてのインデックスを検索する方法

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 00:26:02194ブラウズ

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 サイトの他の関連記事を参照してください。

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