做<某事> N次(声明性语法)

2022-08-30 04:22:27

在Javascript中,有没有办法轻松地编写这样的东西:

[1,2,3].times do {
  something();
}

任何可能支持类似语法的库?

更新:澄清 - 我希望每个数组元素迭代分别调用1,2和3次something()


答案 1

只需使用一个循环:for

var times = 10;

for(var i = 0; i < times; i++){
    doSomething();
}

答案 2

可能的ES6替代方案。

Array.from(Array(3)).forEach((x, i) => {
  something();
});

而且,如果您希望它“分别被调用1,2和3次”。

Array.from(Array(3)).forEach((x, i) => {
  Array.from(Array(i+1)).forEach((x, i2) => {
    console.log(`Something ${ i } ${ i2 }`)
  });
});

更新:

取自填充数组与未定义

这似乎是创建初始数组的一种更优化的方式,我还对其进行了更新,以使用@felix-eve建议的第二个参数映射函数。

Array.from({ length: 3 }, (x, i) => {
  something();
});