我可以使用数组迭代器执行与 for 循环相同的功能吗?

Can I use an Array Iterator to do the same function as a for loop?

我正在尝试了解是否可以使用数组迭代器(如 .forEach())来完成与 for 循环相同的功能。

我正在尝试了解 javascript 事件侦听器并编写了一些基本代码来帮助我学习

我有多个 div 的 class 名称为 'button'。

我拥有使用 for 循环实现的功能,但无法弄清楚如何使用迭代器实现同样的功能。可能吗??

// Can I use an Array Iterator to do the same operation here
for (var i = 0; i < button.length; i++) {
  addEvent(button[i]);
}

看到一个JSFiddle of all my code here

我尝试过使用 .forEach() 迭代器,但无法弄清楚如何在 forEach() 迭代器中获取数组索引,因为我需要定义 运行 上的 addEvent 函数的哪个按钮.

button在代码中你只发布了一个 link 到 ,是一个 HTMLCollection,所以你可以用它做的不多"natively"

但是,使用 Array.from you can "convert" it to an array, and then use the Array#forEach 方法 - 因此,您的代码将是

Array.from(button).forEach(function(btn) {
    addEvent(btn);
});

或者,更好的是

Array.from(button).forEach(addEvent);

如果您要处理 Internet Exploder,则需要 Array.from

的 Polyfill

如果您需要处理版本 9 之前的 Internet Exploder,您将需要 Array.prototype.forEach

的 Polyfill

我 link 阅读的 MDN 文档对两者都有 Polyfill