onEvent("pb" + 1, "click", function() {
console.log(("pb" + 1) + " was clicked!");
});
onEvent("pb" + 2, "click", function() {
console.log(("pb" + 2) + " was clicked!");
});
onEvent("pb" + 3, "click", function() {
console.log(("pb" + 3) + " was clicked!");
});
onEvent("pb" + 4, "click", function() {
console.log(("pb" + 4) + " was clicked!");
});
我必须编写80个这些函数...
我想这样做,所以我可以使用变量来包含范围1-80:
onEvent("pb" + [1, 80], "click", function() {
console.log(("pb" + [1, 80]) + " was clicked!");
});
我不确定是否可以将变量定义为一组单独的数字。
使用循环:
for (let i = 1; i <= 80; i++) {
onEvent("pb" + i, "click", function()
console.log("pb" + i + " was clicked");
})
}
请确保您使用let
而不是var
,以便为每次迭代获得新的绑定。否则,您会遇到Javascript infamous Loop issue?
不幸的是,范围迭代器尚未内置。但是它们足够简单(使用循环):
function* range(start, end) {
for (let i = start; i <= end; i++) {
yield i
}
}
然后让您执行此操作:
for (let value of range(1,80)){
console.log(value)
}
或此:
range(1,80).forEach(value => console.log(value))
为什么这样做而不是仅仅循环?好吧,取决于,有时循环更有意义。但是有一些原因可能会更好:
range
代码,并将其固定在任何地方。或者,也许您想处理字母和数字的范围。现在,您可以在一个地方进行更改,并且可以在任何地方使用。range
,则可以避免该问题。