La conversion optimale de JavaScript NodeList en tableau : comparaison des performances
Des discussions précédentes ont suggéré que la conversion d'une NodeList en tableau à l'aide de Array.prototype .slice.call(nl) est l’approche la plus efficace. Cependant, de récents benchmarks de performances ont remis en question cette notion.
Analyse comparative des deux méthodes
Alors que la méthode Array.prototype.slice.call(nl) est largement considérée comme rapide , des expériences dans Chromium 6 ont montré qu'elle est nettement plus lente qu'une simple boucle for :
<code class="javascript">// Using a 'for' loop var arr = []; for(var i = 0, n; n = nl[i]; ++i) arr.push(n);</code>
Ce résultat peut surprendre, compte tenu de l'efficacité perçue de la méthode slice().
Entrez Array.from() d'ES6
Avec l'avènement d'ES6, nous disposons désormais d'une solution simplifiée à cette tâche : la fonction Array.from(). Cette fonction nous permet de créer un tableau à partir d'un objet itérable, qui inclut des NodeLists.
<code class="javascript">// Using Array.from() let myArray = Array.from(nl)</code>
Avantages en termes de performances d'Array.from()
Array.from( ) surpasse à la fois slice() et la simple boucle for en termes de vitesse. Ceci est attribué à sa mise en œuvre optimisée, qui exploite l'opérateur de propagation ES6 pour créer efficacement le tableau.
Conclusion
Bien que les anciennes techniques de conversion de NodeLists en tableaux puissent encore ont leur utilité, l'introduction de Array.from() l'a établi comme l'approche la plus rapide et la plus pratique. En tirant parti des fonctionnalités avancées d'ES6, les développeurs peuvent désormais effectuer cette conversion sans effort et efficacement.
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!