配列内の要素のすべてのインスタンスのインデックスを識別することは、一般的なプログラミング タスクです。 JavaScript では、配列は .indexOf() や .includes() などのメソッドを提供しますが、最初または最後の出現のみを返します。すべてのインスタンスのインデックスを取得するには、別のアプローチが必要です。
効果的な方法の 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() メソッドが繰り返し呼び出されます。指定された値のインスタンスが見つかるたびに、対応するインデックスがインデックス配列に追加されます。
もう 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 サイトの他の関連記事を参照してください。