CoffeeScript中循环指针的增量

时间:2015-03-18 21:26:50

标签: javascript for-loop coffeescript

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;
  }
}

1 个答案:

答案 0 :(得分:0)

查看:CoffeeScript for loop get iterator var

您无法在CoffeeScript,AFAIK中更改for循环的实际索引。您必须改为使用while循环。