Die optimale Konvertierung von JavaScript NodeList zu Array: Leistungsvergleich
Frühere Diskussionen haben vorgeschlagen, eine NodeList mit Array.prototype in ein Array zu konvertieren .slice.call(nl) ist der effizienteste Ansatz. Aktuelle Leistungsbenchmarks haben diese Vorstellung jedoch in Frage gestellt.
Benchmarking der beiden Methoden
Während die Methode Array.prototype.slice.call(nl) allgemein als schnell angesehen wird Experimente in Chromium 6 haben gezeigt, dass es deutlich langsamer ist als eine einfache for-Schleife:
<code class="javascript">// Using a 'for' loop var arr = []; for(var i = 0, n; n = nl[i]; ++i) arr.push(n);</code>
Dieses Ergebnis mag angesichts der wahrgenommenen Effizienz der Slice()-Methode überraschend sein.
Geben Sie Array.from() von ES6 ein
Mit der Einführung von ES6 haben wir jetzt eine optimierte Lösung für diese Aufgabe: die Funktion Array.from(). Mit dieser Funktion können wir ein Array aus einem iterierbaren Objekt erstellen, das NodeLists enthält.
<code class="javascript">// Using Array.from() let myArray = Array.from(nl)</code>
Leistungsvorteile von Array.from()
Array.from( ) übertrifft sowohl Slice() als auch die einfache for-Schleife in puncto Geschwindigkeit. Dies ist auf die optimierte Implementierung zurückzuführen, die den ES6-Spread-Operator nutzt, um das Array effizient zu erstellen.
Fazit
Während die alten Techniken zum Konvertieren von NodeLists in Arrays möglicherweise immer noch vorhanden sind Obwohl sie ihre Verwendungsmöglichkeiten haben, hat sich die Einführung von Array.from() als der schnellste und bequemste Ansatz etabliert. Durch die Nutzung der erweiterten Funktionen von ES6 können Entwickler diese Konvertierung jetzt mühelos und effizient durchführen.
Das obige ist der detaillierte Inhalt vonIst Array.from() wirklich 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!