Le moyen le plus efficace pour convertir un HTMLCollection à un Tableau

Est-il un moyen plus efficace pour convertir un HTMLCollection à un Tableau, d'autres que l'itération à travers le contenu de cette collection et manuellement en poussant chaque élément dans un tableau?

  • Qu'entend-on par "efficace"? Si les plus performants, d'une boucle for est généralement plus rapide qu'un Tableau.le prototype.la tranche. Une boucle fonctionne également dans une plus grande variété de navigateurs (c'est à dire tous), de sorte que par ces critères, il est le "plus efficace". Et c'est très peu de code: for (var a=[], i=collection.length; i;) a[--i] = collection[i]; donc pas beaucoup d'un "con" là 🙂
  • Merci, je voudrais vous donner +59k si je le pouvais! 😉
  • Regarde navigateur actuel de la performance, tranche a surtout pris avec les boucles en termes de performance, à l'exception de Chrome. À l'aide d'un plus grand nombre d'éléments et légère optimisation de la boucle, le les résultats sont presque identiques, sauf dans Chrome lorsqu'une boucle est beaucoup plus rapide.
  • J'ai créé un jsperf test qui examine à la fois les méthodes que @harpo mentionnées ainsi que jquery test de performance. J'ai trouvé jquery est légèrement plus lent que les deux méthodes javascript, des performances au top varie entre la js cas de test. Chrome 59.0.3071 / Mac OS X 10.12.5 préfère utiliser Array.prototype.slice.call et Courageux (basé sur Chrome 59.0.3071) a pratiquement pas de différence entre les deux contrôles javascript sur plusieurs pistes. Voir jsperf.com/htmlcollection-array-vs-jquery-children
InformationsquelleAutor Tom | 2008-10-21