Beim Versuch, die Positionen mehrerer Instanzen eines Elements, z. B. „Nano“, innerhalb eines JavaScript-Arrays zu lokalisieren, werden Methoden verwendet wie jQuery.inArray oder .indexOf() greifen zu kurz, da sie nur das letzte Vorkommen identifizieren.
var Cars = ["Nano", "Volvo", "BMW", "Nano", "VW", "Nano"];
Hier ist die Lösung:
Die Methode .indexOf() ermöglicht die Angabe eines Startindex , sodass Sie das Array durchlaufen und alle Instanzen des angegebenen Werts lokalisieren können.
<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>
Wie jedoch von VisioN in den Kommentaren hervorgehoben, bietet eine einfache for-Schleife eine effizientere und prägnantere Lösung:
<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>
Das obige ist der detaillierte Inhalt vonWie finde ich alle Vorkommen eines Elements in einem JavaScript-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!