0

forEach 方法是否设计为仅适用于 javascript 中的数组?任何人都可以分享有关使用 forEach() 方法可以完成哪些主要任务的想法或示例,还是仅对获取元素值和索引有用?

4

2 回答 2

2

不。

它旨在处理数组,但可以对任何类似数组的对象进行操作(尽管您仍然必须从它存在的地方访问它)。

例如,在 NodeList 上:

Array.prototype.forEach.call(
    document.getElementsByTagName('div'), 
    function (divElement) { console.log(divElement); }
);
于 2013-04-15T09:11:17.460 回答
1

它是一个数组函数。查看文档

可以在任何类似数组的对象上使用它,但这不是很方便,因为您必须使用applyor call。例如 :

[].forEach.call("abc",function(v){console.log(v)})

要遍历对象键,您应该使用for..in

for (key in object) {
    var value = object[key];
} 

请注意,jQuery 的兼容性函数$.each为数组和非数组对象启用了相同的迭代函数,但您通常知道您是否正在处理一个数组(或者您应该),所以我只使用它来与旧浏览器兼容。

于 2013-04-15T09:10:14.597 回答