免责声明:我不知道Coffeescript,虽然我很感激它为ES6规范做出了贡献,但我迫不及待地想看看它的背后。
这个Coffeescript循环(由其他人写)
if @props.total>1
for page in [1..@props.total]
active = (page is +@props.current)
根据{{3}},等同于这个JS
var active, i, page, ref;
if (this.props.total > 1) {
for (page = i = 1, ref = this.props.total; 1 <= ref ? i <= ref : i >= ref; page = 1 <= ref ? ++i : --i) {
active = page === +this.props.current;
}
}
现在我想使用for..of
循环缩短JS,但我无法弄清楚如何。
我试图实现js2coffee(底部的生成器功能位),但我无法做到正确。
我的问题是:有没有办法在ES6中制作音域?
答案 0 :(得分:1)
您正在寻找的生成器解决方案
D1
答案 1 :(得分:0)
要在JavaScript中从k
开始生成长度为n
的任何范围的连续整数,以下内容应该有效:
Array.apply(null, Array(k)).map((x, i) => i + n);
虽然完全与coffeescript范围功能相同,但它可能足够接近大多数用途。尽管明显更加冗长有一个明显的优势:你不必记住..
和...
中的哪一个是独占的,哪个是包容性的。