2013-06-21 30 views
0

难道没有转换阵列状物体到数组,使所有阵列方法可以用它可以使用任何方式在这里看到:?转换ArrayLike对象

[].prototype.forEach.call("maizere",fn) 

同样为每个阵列状物体,

我想要的是直接在这个“maizere”字符串上使用forEach循环。但在此之前,我需要将它转换为一个数组。有没有任何可能性或任何技巧适用于所有类似数组的对象。谢谢。

+0

您是否真的需要适用于所有不同类型的单一解决方案,或只是字符串? – Barmar

+0

@Barmar更新了我的文章 –

+0

可以用字符串,NodeList,参数等调用什么类型的函数,并且需要将它们全部作为数组来处理?这似乎是一个奇怪的要求。 – Barmar

回答

2

将它传递到slice而不是forEachslice只会使阵列出来的):

Array.prototype.slice.call("maizere").map(function(l) { 
    return l + 'foo'; 
}).forEach(function(l) { 
    console.log(l); 
}); 

它会为阵列状物体的工作就像NodeList S,arguments和字符串。

+0

谢谢你,这很有帮助。此方法也适用于任何类似Arry的对象 –