ホームページ  >  記事  >  ウェブフロントエンド  >  NodeList を配列に変換する最速の方法は依然として「slice()」ですか?

NodeList を配列に変換する最速の方法は依然として「slice()」ですか?

DDD
DDDオリジナル
2024-10-27 22:55:30828ブラウズ

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

JavaScript NodeList の配列への変換: 速度に関する考慮事項

NodeList の配列への変換に関する以前の議論では、slice() を使用すると主張されていました。という方法が最も効率的なアプローチです。しかし、最近のベンチマークで驚くべき発見が明らかになりました。

ベンチマークの観察

Chromium 6 で行われた実験では、単純なメソッドを使用して NodeList から配列を作成することが発見されました。 for ループは、slice() メソッドよりも 3 倍以上優れています。この結果は、slice() の優位性に関する以前の主張と矛盾します。

考えられる説明

この矛盾の理由は、ブラウザ固有の最適化または JavaScript の違いに起因する可能性があります。エンジンの実装。このシナリオでは、Chromium エンジンが for ループをより効率的に処理する可能性があります。

ES6 を使用した代替ソリューション

ES6 の出現により、新しく簡潔なソリューションが提供されます。利用可能なのは Array.from() 関数です。この関数は、NodeList を含む任意の反復可能なオブジェクトから配列を迅速かつ簡単に作成できます。

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

結論

一方、for ループのアプローチは、特定の部分では驚くべき速度を提供する可能性があります。ブラウザでは、Array.from() 関数は、NodeList を配列に変換するための最新のクロスプラットフォーム ソリューションを提供します。

以上がNodeList を配列に変換する最速の方法は依然として「slice()」ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。