JavaScript NodeList を配列に変換する最も速い方法は? 質問する

JavaScript NodeList を配列に変換する最も速い方法は? 質問する

以前ここで回答された質問では、これが最も速い方法であると述べられています:

//nl is a NodeList
var arr = Array.prototype.slice.call(nl);

私のブラウザでベンチマークしたところ、これよりも 3 倍以上遅いことがわかりました。

var arr = [];
for(var i = 0, n; n = nl[i]; ++i) arr.push(n);

どちらも同じ出力を生成しますが、特にここで人々が別のことを言っているので、2 番目のバージョンが可能な限り最速の方法であるとは信じがたいです。

これは私のブラウザ (Chromium 6) の不具合でしょうか? それとももっと速い方法があるのでしょうか?

ベストアンサー1

ES6では、NodeListから配列を作成する簡単な方法があります。Array.from()関数。

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

おすすめ記事