Heim >Web-Frontend >js-Tutorial >Ist „slice()' immer noch der schnellste Weg, eine NodeList in ein Array zu konvertieren?

Ist „slice()' immer noch der schnellste Weg, eine NodeList in ein Array zu konvertieren?

DDD
DDDOriginal
2024-10-27 22:55:30935Durchsuche

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

JavaScript NodeList in Array konvertieren: Überlegungen zur Geschwindigkeit

Frühere Diskussionen zum Thema der Konvertierung von NodeLists in Arrays haben behauptet, dass die Verwendung von Slice() Methode ist der effizienteste Ansatz. Jüngste Benchmarks haben jedoch ein überraschendes Ergebnis ergeben.

Benchmark-Beobachtungen

In Experimenten, die mit Chromium 6 durchgeführt wurden, wurde festgestellt, dass das Erstellen eines Arrays aus einer NodeList mithilfe eines einfachen Die for-Schleife übertrifft die Methode „slice()“ um mehr als das Dreifache. Dieses Ergebnis steht im Widerspruch zu früheren Behauptungen bezüglich der Überlegenheit von Slice().

Mögliche Erklärungen

Der Grund für diese Diskrepanz könnte in browserspezifischen Optimierungen oder Unterschieden in JavaScript liegen Engine-Implementierungen. Es ist möglich, dass die Chromium-Engine in diesem Szenario die for-Schleife effizienter verarbeitet.

Alternative Lösung mit ES6

Mit der Einführung von ES6 eine neue und prägnante Lösung steht zur Verfügung: die Funktion Array.from(). Diese Funktion kann schnell und einfach ein Array aus jedem iterierbaren Objekt, einschließlich NodeLists, erstellen.

// nl is a NodeList
let myArray = Array.from(nl)

Fazit

Während der for-Schleifenansatz mit Sicherheit eine überraschende Geschwindigkeit bieten kann Browsern bietet die Funktion Array.from() eine moderne und plattformübergreifende Lösung zum Konvertieren von NodeLists in Arrays.

Das obige ist der detaillierte Inhalt vonIst „slice()' immer noch der schnellste Weg, eine NodeList in ein Array zu konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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