JavaScript 配列内で「Nano」などの要素の複数のインスタンスの位置を特定しようとする場合、メソッドjQuery.inArray や .indexOf() などは、最後の出現箇所を識別するだけなので不十分です。
var Cars = ["Nano", "Volvo", "BMW", "Nano", "VW", "Nano"];
解決策は次のとおりです。
.indexOf() メソッドを使用すると、開始インデックスを指定できます。これにより、配列をループして、指定された値のすべてのインスタンスを特定することができます。
<code class="javascript">function getAllIndexes(arr, val) { var indexes = [], i = -1; while ((i = arr.indexOf(val, i + 1)) != -1) { indexes.push(i); } return indexes; } var indexes = getAllIndexes(Cars, "Nano");</code>
ただし、VisioN がコメントで指摘したように、単純な for ループの方がより効率的で簡潔なソリューションを提供します。
<code class="javascript">function getAllIndexes(arr, val) { var indexes = [], i; for (i = 0; i < arr.length; i++) { if (arr[i] === val) { indexes.push(i); } } return indexes; }</code>
以上がJavaScript 配列内で出現する要素をすべて見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。