1. ホーム
  2. javascript

[解決済み] HTMLCollectionをArrayに変換する最も効率的な方法

2022-02-17 22:19:47

質問

HTMLCollectionをArrayに変換するために、当該コレクションの内容を反復して、各項目を手動で配列にプッシュする以外に、より効率的な方法はありますか?

どのように解決するのですか?

var arr = Array.prototype.slice.call( htmlCollection )

は、quot;native" のコードを使用しても同じ効果が得られます。

編集

これは多くのビューを得るので、次のようなより簡潔な表現があることに注意してください(@oriol さんのコメントによる)。 効果的に と同等です。

var arr = [].slice.call(htmlCollection);

しかし、@JussiR さんのコメントによると、"verbose" 形式とは異なり、処理中に空の、未使用の、そして実際に使用できない配列インスタンスが作成されることに注意してください。 この点についてコンパイラがどうするかは、プログラマの知るところではありません。

編集

ECMAScript 2015 (ES 6)からは、次のようなものもあります。 Array.from :

var arr = Array.from(htmlCollection);

編集

また、ECMAScript 2015 では スプレッド演算子 と機能的に同等である。 Array.from (ただし Array.from は第2引数としてマッピング関数をサポートしています)。

var arr = [...htmlCollection];

上記2つの動作は NodeList .

ご紹介した方法の性能比較です。 http://jsben.ch/h2IFA