Maison  >  Article  >  interface Web  >  Le moyen le plus rapide de convertir JavaScript NodeList en tableau

Le moyen le plus rapide de convertir JavaScript NodeList en tableau

WBOY
WBOYavant
2023-08-31 21:01:22931parcourir

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

Dans ce tutoriel, nous apprendrons le moyen le plus rapide de convertir JavaScript NodeList en Array. NodeList est une structure de type tableau ; c'est une collection d'éléments DOM (Document Object Model). Cependant, les méthodes de tableau telles que "map()", "filter()" et "slice()" ne peuvent pas être utilisées sur les objets NodeList.

Il existe de nombreuses façons de convertir une NodeList en tableau, mais utilisez ces deux méthodes pour accomplir la tâche plus rapidement -

  • En parcourant une boucle for

  • Utilisez la fonction Array.from()

En parcourant une boucle for

En JavaScript, nous pouvons utiliser une boucle for pour parcourir une NodeList afin que tous les éléments effectuent une tâche spécifique. Ainsi, en parcourant la NodeList, nous copions tous les éléments de la NodeList dans le tableau.

Grammaire

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

Nous enregistrons la longueur de nodeList dans une variable et déclarons un tableau de cette taille. Lorsque l’on connaît la taille du tableau, il est préférable de déclarer un tableau de taille fixe. Ensuite, nous utilisons une boucle for pour attribuer des valeurs dans le tableau.

Algorithme

  • Étape 1 - Stockez la longueur de nodeList dans la variable len.

  • Étape 2 - Déclarez un tableau de tailles d'objectif.

  • Étape 3 - Dans la boucle for, initialisez la variable compteur "i" avec la valeur 0.

  • Étape 3.1 - Répétez la boucle jusqu'à ce que "i" ne soit pas égal à len.

  • Étape 3.2 - Dans la condition de mise à jour, augmentez "i" de 1.

  • Étape 3.3 - Dans le corps de la boucle for, attribuez la valeur du i-ème index de la NodeList au i-ème index du tableau.

Exemple

Dans l'exemple ci-dessous, en utilisant la méthode Document document.querySelectorAll(), nous obtenons une NodeList de type sélecteur "div". Nous convertissons cette NodeList en tableau.

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

Dans le code ci-dessus, les utilisateurs peuvent voir que nous avons utilisé une boucle for pour créer un tableau réel à partir de la NodeList. Nous utilisons const pour enregistrer la longueur de la NodeList dans « len » et déclarer un tableau de taille « len », ce qui rendra notre opération plus rapide.

Nous avons 3 éléments "div". Par conséquent, nous obtenons un tableau de taille 3, comme indiqué dans le résultat.

Utilisez la fonction Array.from()

Cette méthode peut être utilisée pour créer une instance Array d'un objet itérable ou d'un objet de type tableau. Nous convertissons une NodeList, qui a une structure similaire à celle d'un tableau.

Avec ES6 (ECMAScript 6), nous pouvons obtenir un tableau à partir d'une NodeList très facilement en utilisant la fonction Array.from(). Si nous ne voulons pas parcourir la NodeList et voulons simplement la convertir, alors ce sera le moyen le plus rapide.

Grammaire

const nodeList = document.querySelectorAll('p');
let arr = Array.from(nodeList);

Ici, nous avons créé une NodeList de sélecteur de type "p" en utilisant document.querySelectorAll() de la méthode Document. Nous passons cette NodeList en paramètre dans la fonction Array.from(). Cette fonction renvoie un tableau. Nous n’avons besoin que d’une seule ligne de code pour le convertir en tableau, ce qui le rend facile à retenir et à comprendre.

Exemple

Dans l'exemple ci-dessous, nous créons une NodeList de type sélecteur "p". Nous convertissons cette NodeList en tableau à l’aide de la fonction Array.from().

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

Dans la sortie ci-dessus, l'utilisateur voit que nous avons obtenu un tableau contenant 2 éléments "p". Par conséquent, notre NodeList est convertie avec succès en tableau en utilisant un seul appel de fonction.

REMARQUE - La méthode ci-dessus fonctionne bien dans tous les navigateurs modernes mais peut ne pas fonctionner correctement dans les navigateurs plus anciens.

Nous avons appris à convertir NodeList en Array. La première façon consiste à utiliser une boucle for en parcourant la NodeList. La deuxième façon consiste à utiliser la méthode Array.from(). Lorsque l'utilisateur souhaite uniquement convertir la NodeList, plutôt que de la parcourir, il est recommandé d'utiliser la méthode Array.from().

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer