JavaScript NodeList から Array への最適な変換: パフォーマンスの比較
以前の議論では、Array.prototype を使用して NodeList を配列に変換することを提案しました。 .slice.call(nl) は最も効率的なアプローチです。しかし、最近のパフォーマンス ベンチマークでは、この概念に疑問が投げかけられています。
2 つのメソッドのベンチマーク
一方、Array.prototype.slice.call(nl) メソッドは高速であると広く考えられています。 Chromium 6 での実験では、単純な for ループよりも大幅に遅いことが示されています:
<code class="javascript">// Using a 'for' loop var arr = []; for(var i = 0, n; n = nl[i]; ++i) arr.push(n);</code>
slice() メソッドの認識された効率を考えると、この結果は驚くべきかもしれません。
ES6 の Array.from() を入力してください
ES6 の出現により、このタスクに対する合理化されたソリューション、Array.from() 関数が登場しました。この関数を使用すると、NodeList を含む反復可能なオブジェクトから配列を作成できます。
<code class="javascript">// Using Array.from() let myArray = Array.from(nl)</code>
Array.from() のパフォーマンス上の利点
Array.from( ) 速度の点では、slice() と単純な for ループの両方よりも優れています。これは、ES6 スプレッド演算子を活用して配列を効率的に作成する最適化された実装によるものです。
結論
一方、NodeList を配列に変換する古い手法はまだ使用されている可能性があります。 Array.from() の導入により、Array.from() が最も速くて便利なアプローチとして確立されました。 ES6 の高度な機能を活用することで、開発者はこの変換を簡単かつ効率的に実行できるようになりました。
以上がArray.from() は本当に NodeList を配列に変換する最速の方法ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。