Heim > Web-Frontend > js-Tutorial > Hauptteil

Der schnellste Weg, JavaScript NodeList in Array zu konvertieren

WBOY
Freigeben: 2023-08-31 21:01:22
nach vorne
929 Leute haben es durchsucht

将 JavaScript NodeList 转换为数组的最快方法

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( )

Durch Iterieren durch eine for-Schleife

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.

Grammatik

const len = nodeList.length;
const arr = Array(len);
for (var i = 0 ; i != len ; i++) {
   arr[i] = nodeList[i];
}
Nach dem Login kopieren

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.

Algorithmus

  • 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.

    < /里>

Beispiel

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>
Nach dem Login kopieren

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.

Verwenden Sie die Funktion Array.from()

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.

Grammatik

const nodeList = document.querySelectorAll('p');
let arr = Array.from(nodeList);
Nach dem Login kopieren

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.

Beispiel

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>
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage