In diesem Tutorial lernen wir den schnellsten Weg, JavaScript NodeList in Array zu konvertieren. NodeList ist eine Array-ähnliche Struktur; es handelt sich um eine Sammlung von DOM-Elementen (Document Object Model). Allerdings können Array-Methoden wie „map( )“, „filter( )“ und „slice( )“ nicht auf NodeList-Objekten verwendet werden.
Es gibt viele Möglichkeiten, eine NodeList in ein Array zu konvertieren, aber verwenden Sie diese beiden Methoden, um die Aufgabe schneller zu erledigen -
Durch das Durchlaufen einer for-Schleife
Verwenden Sie die Funktion Array.from( )
In JavaScript können wir eine for-Schleife verwenden, um eine NodeList zu durchlaufen und alle Elemente für die Ausführung einer bestimmten Aufgabe abzurufen. Indem wir also über die NodeList iterieren, kopieren wir alle Elemente der NodeList im Array.
const len = nodeList.length; const arr = Array(len); for (var i = 0 ; i != len ; i++) { arr[i] = nodeList[i]; }
Wir speichern die Länge von nodeList in einer Variablen und deklarieren ein Array dieser Größe. Wenn wir die Array-Größe kennen, ist es besser, ein Array mit fester Größe zu deklarieren. Dann verwenden wir eine for-Schleife, um Werte im Array zuzuweisen.
Schritt 1 – Speichern Sie die Länge von nodeList in der len-Variablen.
Schritt 2 – Deklarieren Sie ein Array mit der Len-Größe.
Schritt 3 - Initialisieren Sie in der for-Schleife die Zählervariable „i“ mit dem Wert 0.
Schritt 3.1 – Wiederholen Sie die Schleife, bis „i“ nicht gleich len ist.
Schritt 3.2 - Erhöhen Sie im Aktualisierungszustand „i“ um 1.
Schritt 3.3 – Weisen Sie im Körper der for-Schleife den Wert des i-ten Index der NodeList dem i-ten Index des Arrays zu.
< /里>Im folgenden Beispiel erhalten wir mit der Document-Methode document.querySelectorAll() eine NodeList vom Typselektor „div“. Wir konvertieren diese NodeList in ein Array.
<html> <body> <h2> Convert JavaScript NodeList to Array </h2> <div> <p> This is paragraph of first 'div' element </p> </div> <div> <p> This is paragraph of second 'div' element </p> </div> <div id = "output"> </div> <script> let output = document.getElementById("output"); output.innerHTML = " <p> This is paragraph of third 'div' element </p> " output.innerHTML += " <b> Output of <i> NodeList </i> <b> <br> <br> "; //get NodeList of 'div' elements const nodeList = document.querySelectorAll('div'); //Display output of NodeList output.innerHTML += nodeList + "<br> <br>"; output.innerHTML += "<b> Output of <i> Array </i> <b> <br> <br>"; //save length of NodeList const len = nodeList.length; //Declare array of size len const arr = Array(len); //This for loop will convert NodeList to Array for (var i = 0 ; i != len ; i++) { arr[i] = nodeList[i]; } //Display output of Array output.innerHTML += arr; </script> </body> </html>
Im obigen Code können Benutzer sehen, dass wir eine for-Schleife verwendet haben, um ein tatsächliches Array aus der NodeList zu erstellen. Wir verwenden const, um die Länge der NodeList in „len“ zu speichern und ein Array der Größe „len“ zu deklarieren. Dadurch wird unsere Operation schneller.
Wir haben 3 „div“-Elemente. Daher erhalten wir ein Array der Größe 3, wie in der Ausgabe gezeigt.
Diese Methode kann verwendet werden, um eine Array-Instanz eines iterierbaren oder arrayähnlichen Objekts zu erstellen. Wir konvertieren eine NodeList, die eine ähnliche Struktur wie ein Array hat.
Mit ES6 (ECMAScript 6) können wir mit der Funktion Array.from() ganz einfach ein Array aus einer NodeList abrufen. Wenn wir die NodeList nicht durchlaufen, sondern nur konvertieren möchten, ist dies der schnellste Weg.
const nodeList = document.querySelectorAll('p'); let arr = Array.from(nodeList);
Hier haben wir mit der Methode document.querySelectorAll() der Document-Methode eine NodeList vom Typselektor „p“ erstellt. Wir übergeben diese NodeList als Parameter an die Funktion Array.from(). Diese Funktion gibt ein Array zurück. Wir benötigen nur eine Codezeile, um es in ein Array umzuwandeln, wodurch es leicht zu merken und zu verstehen ist.
Im folgenden Beispiel erstellen wir eine NodeList vom Typselektor „p“. Wir konvertieren diese NodeList mit der Funktion Array.from() in ein Array.
<html> <body> <h2> Convert JavaScript NodeList to Array </h2> <p> We are here to teach you various concepts of Computer Science through our articles.</p> <p>Stay connected with us for such useful content.</p> <div id = "output"> </div> <script> let output = document.getElementById("output"); output.innerHTML = " <b> Output of <i> NodeList </i> <b> <br> <br> "; //get NodeList of 'p' elements const nodeList = document.querySelectorAll('p'); //Display output of NodeList output.innerHTML += nodeList + "<br> <br>"; output.innerHTML += " <b> Output of <i> Array </i> <b> <br> <br> "; //This will convert NodeList to Array let arr = Array.from(nodeList); //Display output of Array output.innerHTML += arr; </script> </body> </html>
In der obigen Ausgabe sieht der Benutzer, dass wir ein Array mit 2 „p“-Elementen erhalten haben. Daher wird unsere NodeList mit nur einem Funktionsaufruf erfolgreich in ein Array konvertiert.
HINWEIS – Die obige Methode funktioniert gut in allen modernen Browsern, funktioniert jedoch möglicherweise nicht richtig in älteren Browsern.
Wir haben gelernt, NodeList in Array zu konvertieren. Die erste Möglichkeit besteht darin, eine for-Schleife zu verwenden, indem die NodeList durchlaufen wird. Die zweite Möglichkeit besteht darin, die Methode Array.from() zu verwenden. Wenn der Benutzer die NodeList nur konvertieren und nicht darüber iterieren möchte, wird empfohlen, die Methode Array.from() zu verwenden.
Das obige ist der detaillierte Inhalt vonDer schnellste Weg, JavaScript NodeList in Array zu konvertieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!