var arr = Array.prototype.slice.call( htmlCollection )
"yerel" kod kullanılarak aynı etkiye sahip olacaktır.
Düzenle
Bu çok fazla görüş aldığından, aşağıdaki daha özlü ifadenin etkili bir şekilde eşdeğer olduğunu (@ oriol'un yorumuna göre) not edin :
var arr = [].slice.call(htmlCollection);
Ancak @ JussiR'nin yorumuna göre, "ayrıntılı" formdan farklı olarak, işlemde boş, kullanılmayan ve gerçekten de kullanılamaz bir dizi örneği oluşturduğunu unutmayın. Derleyicilerin bu konuda yaptıkları programcının ken dışında.
Düzenle
ECMAScript 2015'ten (ES 6) beri Array.from var :
var arr = Array.from(htmlCollection);
Düzenle
ECMAScript 2015 ayrıca işlevsel olarak eşdeğer olan forma operatörünü de sağlar Array.from
(her ne Array.from
kadar ikinci argüman olarak bir eşleme işlevini destekliyor olsa da ).
var arr = [...htmlCollection];
Yukarıdakilerin her ikisinin de çalıştığını doğruladım NodeList
.
Bahsedilen yöntemler için bir performans karşılaştırması: http://jsben.ch/h2IFA
for (var a=[], i=collection.length; i;) a[--i] = collection[i];
çok fazla "con" orada :-)