以前ここで回答された質問では、これが最も速い方法であると述べられています:
//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)