我可以使用数组迭代器执行与 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
我正在尝试了解是否可以使用数组迭代器(如 .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
如果您需要处理版本 9 之前的 Internet Exploder,您将需要 Array.prototype.forEach
我 link 阅读的 MDN 文档对两者都有 Polyfill