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;
}
}
答案 0 :(得分:0)
查看:CoffeeScript for loop get iterator var
您无法在CoffeeScript,AFAIK中更改for
循环的实际索引。您必须改为使用while
循环。