SORU
7 Temmuz 2010, ÇARŞAMBA


En hızlı Dizi için JavaScript NodeList dönüştürmek için yolu?

Daha önce cevaplanmış sorular burada bu en hızlı yol olduğunu söyledi:

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

Tarayıcımda kıyaslama bu oranla 3 kat daha yavaş olduğunu fark ettim:

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

İkisi de aynı çıktıyı üretmek, ama özellikle insanlar aksi takdirde burada söylediğim beri çok zor benim ikinci sürümü mümkün olan en hızlı yol olduğuna bile inanamıyorum.

Bu benim tarayıcı (Krom 6) bir cilvesi midir? Ya da daha hızlı bir yolu var mı?

EDİT: ilgilenen kişiler İçin, aşağıdaki yerleşmiş test ettim her tarayıcıda hızlı gibi görünüyor)

//nl is a NodeList
var l = []; // Will hold the array of Node's
for(var i = 0, ll = nl.length; i != ll; l.push(nl[i  ]));

EDİT2: daha hızlı bir yol buldum

// nl is the nodelist
var arr = [];
for(var i = nl.length; i--; arr.unshift(nl[i]));

CEVAP
7 Temmuz 2010, ÇARŞAMBA


İkincisi bazı tarayıcılarda daha hızlı olma eğilimindedir, ama asıl mesele, ilki sadece çapraz tarayıcı olmadığı için bunu kullanmak zorunda. Bu Kez Onlar bir Hareket olsa bile'

@kangax(IE 9 önizleme)

Dizi.prototip.dilimşimdi dönüştürebilirsiniz bazı ana nesneleri (örneğin NodeList) diziler için bir şey büyük bir çoğunluğunun modern tarayıcılar yapmak mümkün olmuştur oldukça uzun bir süredir.

Örnek:

Array.prototype.slice.call(document.childNodes);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • metallmanutza13

    metallmanutz

    13 NİSAN 2007
  • SomeOne Pro

    SomeOne Pro

    25 EKİM 2013