for char, index in 'some string'
if condition
index += 2
我有一个 for 循环,我在其中循环一个字符串,当满足特定条件时,我想跳过当前字符之后的一些字符。在 JavaScript 中,我会执行 index += 2
并且它会起作用,但是由于某些未知原因,CoffeeScript 编译器将这段代码编译成 JS for
循环,它使用 _i
变量来保持真正的索引并且只将当前值赋给 index
,这意味着通过改变 index
的值,我并没有真正改变指针。
我知道我可以使用 while
循环来做到这一点,但我一直认为必须有一种方法可以使用 for
循环来做到这一点。我是对的,还是应该坚持 while
循环?
编译后的JS代码如下:
var char, index, _i, _len, _ref;
_ref = 'some string';
for (index = _i = 0, _len = _ref.length; _i < _len; index = ++_i) {
char = _ref[index];
if (condition) {
index += 2;
}
}
最佳答案
看看:CoffeeScript for loop get iterator var
您不能更改 CoffeeScript 中 for
循环的实际索引,AFAIK。您必须改用 while
循环。
关于javascript - CoffeeScript 中循环指针的增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29133027/