Das Identifizieren der Indizes aller Instanzen eines Elements innerhalb eines Arrays ist eine häufige Programmieraufgabe. In JavaScript bieten Arrays Methoden wie .indexOf() und .includes(), aber sie geben nur das erste oder letzte Vorkommen zurück. Um Indizes für alle Instanzen zu erhalten, ist ein anderer Ansatz erforderlich.
Eine effektive Methode besteht darin, mit .indexOf() iterativ nach Elementvorkommen zu suchen. Die folgende Funktion demonstriert diesen Ansatz:
<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>
In dieser Funktion wird die .indexOf()-Methode wiederholt mit einem steigenden Startindex aufgerufen. Jedes Mal, wenn eine Instanz des angegebenen Werts gefunden wird, wird der entsprechende Index zum Index-Array hinzugefügt.
Eine weitere effiziente Methode ist eine einfache For-Schleife:
<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>
Diese for-Schleife durchläuft das Array und vergleicht jedes Element mit dem angegebenen Wert. Wenn eine Übereinstimmung gefunden wird, fügt die Schleife ihren Index dem Index-Array hinzu.
Beide dieser Ansätze können verwendet werden, um die Indizes aller Vorkommen des Elements „Nano“ zu finden. im Array Cars:
<code class="js">var Cars = ["Nano", "Volvo", "BMW", "Nano", "VW", "Nano"]; var indexes = getAllIndexes(Cars, "Nano");</code>
Die Indexvariable enthält jetzt ein Array mit den Indizes aller Instanzen von „Nano“ im Cars-Array: [0, 3, 5].
Das obige ist der detaillierte Inhalt vonWie finde ich alle Indizes eines Elements in einem JavaScript-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!