无论如何我可以将变量设置为一系列数字并将其包含在函数中吗?

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!");

 });

我不确定是否可以将变量定义为一组单独的数字。


慕侠2389804
浏览 100回答 2
2回答

青春有我

使用循环:for (let i = 1; i <= 80; i++) {&nbsp; &nbsp; onEvent("pb" + i, "click", function()&nbsp; &nbsp; &nbsp; &nbsp; console.log("pb" + i + " was clicked");&nbsp; &nbsp; })}确保使用let而不是var,以便为每次迭代获得一个新的绑定。

繁星点点滴滴

不幸的是,范围迭代器还没有内置。但它们制作起来很简单(使用循环):function* range(start, end) {&nbsp; &nbsp; for (let i = start; i <= end; i++) {&nbsp; &nbsp; &nbsp; &nbsp; yield i&nbsp; &nbsp; }}然后,您可以这样做:for (let value of range(1,80)){&nbsp; console.log(value)}或这个:range(1,80).forEach(value => console.log(value))为什么这样做而不仅仅是一个循环?好吧,取决于,有时循环更有意义。但这里有一些可能会更好的原因:更多意图揭示代码:拥有一个名为 range 的函数会告诉您您打算做什么:使用一系列值更好的提取:假设您后来发现循环效率低下(不太可能,但为了举例)。然后,您可以在一range处更改代码,并在各处进行修复。或者,也许您想处理字母和数字的范围。现在您可以在一个地方进行更改,并且它在任何地方都有效。同样,假设您需要在许多地方使用范围。在任何地方都使用循环意味着您必须在使用该循环的每个地方都避免拼写错误。如果改为使用range,则可以避免该问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript