JS 中实现循环固定次数的语法糖
有一些场景需要循环固定次数来执行一些操作,比如失败重试固定次数,制造固定数量的假数据等。
在 JS 中实现的时候,我一直使用最简单的 for 版本,但是一方面他是我代码中为数不多的声明式的循环写法,同时也产生了不必要的变量,相比声明式的写法可读性也稍微差一些。
之前一直使用的循环版本。
for (let i = 1; i < 10; i++) {
doSomething();
}
在其他语言中,比如 Ruby 中可以这么实现:
5.times { print "1" }
在 Python3 中可以这么实现:
import itertools
for _ in itertools.repeat(None, n):
foo()
最近在写 JS 中又遇到这个问题,搜索一番,综合各家方案,我选择一个具有声明式,同时可读性也不差的写法。
Array.from({length: 3}).map(() => doSomething());
当然所有简化写法的目标都是围绕着制造一个有固定数量的 undefined 元素的数组而做的。
更简洁但是可读性差一些的方案。
[...Array(3)].map(() => doSomething());
References #
https://stackoverflow.com/questions/30452263/is-there-a-mechanism-to-loop-x-times-in-es6-ecmascript-6-without-mutable-varia
- Previous: 和青木老师学习日语的第二天
- Next: 区块链的无需许可 Permissionless 和终局性 Finality