Lorsque vous tentez de localiser les positions de plusieurs instances d'un élément, tel que "Nano", dans un tableau JavaScript, les méthodes comme jQuery.inArray ou .indexOf() ne suffisent pas car ils n'identifient que la dernière occurrence.
var Cars = ["Nano", "Volvo", "BMW", "Nano", "VW", "Nano"];
Voici la solution :
La méthode .indexOf() permet de spécifier un index de départ , vous permettant de parcourir le tableau et d'identifier toutes les instances de la valeur spécifiée.
<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>
Cependant, comme l'a souligné VisioN dans les commentaires, une boucle for simple offre une solution plus efficace et concise :
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!