Maison > interface Web > js tutoriel > le corps du texte

`slice()` est-il toujours le moyen le plus rapide de convertir une NodeList en un tableau ?

DDD
Libérer: 2024-10-27 22:55:30
original
923 Les gens l'ont consulté

 Is `slice()` Still The Fastest Way to Convert a NodeList to an Array?

Conversion de NodeList JavaScript en tableau : considérations relatives à la vitesse

Des discussions précédentes sur le sujet de la conversion de NodeLists en tableaux ont affirmé que l'utilisation de slice() La méthode est l’approche la plus efficace. Cependant, des benchmarks récents ont révélé un résultat surprenant.

Observations de benchmark

Dans des expériences menées sur Chromium 6, il a été découvert que la création d'un tableau à partir d'une NodeList à l'aide d'un simple La boucle for surpasse la méthode slice() de plus de trois fois. Ce résultat est en conflit avec les affirmations antérieures concernant la supériorité de slice().

Explications possibles

La raison de cet écart peut provenir d'optimisations spécifiques au navigateur ou de différences dans JavaScript implémentations de moteurs. Il est possible que le moteur Chromium gère la boucle for plus efficacement dans ce scénario.

Solution alternative avec ES6

Avec l'avènement d'ES6, une nouvelle solution concise est disponible : la fonction Array.from(). Cette fonction peut créer rapidement et facilement un tableau à partir de n'importe quel objet itérable, y compris les NodeLists.

// nl is a NodeList
let myArray = Array.from(nl)
Copier après la connexion

Conclusion

Bien que l'approche de la boucle for puisse offrir une vitesse surprenante dans certains navigateurs, la fonction Array.from() fournit une solution moderne et multiplateforme pour convertir des NodeLists en tableaux.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal