Crescent'in söylediklerine eklemek için,
İstediğiniz tek işlevse, NodeList.prototype.map = Array.prototype.map gibi bir şey yapabilirsiniz.
Bunu yapma! Çalışması hiç garanti değil.
Hiçbir JavaScript veya DOM / BOM standardı, NodeListyapıcı-işlevin bir global / windowözellik olarak var olduğunu veya NodeListtarafından döndürülen querySelectorAllişlevin ondan miras alınacağını veya prototipinin yazılabilir olduğunu veya işlevin Array.prototype.mapaslında bir NodeList üzerinde çalışacağını belirtmez .
Bir NodeList'in bir 'ana bilgisayar nesnesi' olmasına izin verilir (ve IE'de ve bazı eski tarayıcılarda birdir). ArrayYöntemler sayısal ve ortaya herhangi JavaScript 'yerli nesne' üzerinde çalışmasına izin verilmesi olarak tanımlanan lengthözelliklere, ancak ana nesneler üzerinde çalışmaya zorunlu değildir (ve IE, sevmezler).
DOM listelerinde tüm dizi yöntemlerini (tümü, yalnızca StaticNodeList değil) almamanız can sıkıcıdır, ancak bunun güvenilir bir yolu yoktur. Geri aldığınız her DOM listesini bir Diziye manuel olarak dönüştürmeniz gerekir:
Array.fromList= function(list) {
var array= new Array(list.length);
for (var i= 0, n= list.length; i<n; i++)
array[i]= list[i];
return array;
};
Array.fromList(element.childNodes).forEach(function() {
...
});