我是否可以将变量设置为一个数字范围,并将其包含在函数中?(javascript)

我是否可以将变量设置为一个数字范围,并将其包含在函数中?(javascript),javascript,range,dry,Javascript,Range,Dry,我必须编写其中80个函数… 我想这样做,以便我可以使用一个变量来包括范围1-80: 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", funct

我必须编写其中80个函数…

我想这样做,以便我可以使用一个变量来包括范围1-80:

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!");
});
我不确定是否可以将变量定义为一组单独的数字。

使用循环:

 onEvent("pb" + [1, 80], "click", function() {
 console.log(("pb" + [1, 80]) + " was clicked!");
 });

for(让i=1;i不幸的是,范围迭代器还没有内置。但是它们足够简单(使用循环):

功能*范围(开始、结束){
for(让i=start;i console.log(值))
为什么这样做而不仅仅是一个循环?好吧,这取决于,有时循环更有意义。但以下是为什么这样做可能更好的一些原因:

  • 更具意图的代码:使用名为range的函数可以告诉您打算做什么:使用一系列值
  • 更好的提取:假设你后来发现循环效率很低(不太可能,但为了举例)。然后你可以在一个地方更改
    范围
    代码,并在任何地方修复它。或者你可能想处理字母和数字的范围。现在你可以在一个地方进行更改,并且在任何地方都有效
  • 类似地,假设您需要在许多地方使用范围。在所有地方使用循环意味着您必须避免在每个使用该循环的地方输入错误。如果您使用
    范围
    ,则可以避免该问题

编写一个循环并使用索引创建所有这些
onEvent
参数怎么样?您可以使用Array.from作为Array.from({length:80},(v,i)=>onEvent(“pb”+i,“click”,function(){console.log(“pb”+i+“was clicked”);}));如果
引用您在回调函数中单击的元素,并且选择器支持类。您可以使用类选择器而不是id,并使用
此.id
获取单击的元素的id。
for (let i = 1; i <= 80; i++) {
    onEvent("pb" + i, "click", function()
        console.log("pb" + i + " was clicked");
    })
}