javascript - CoffeeScript 中循环指针的增量

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

最佳答案

看看:CoffeeScript for loop get iterator var

您不能更改 CoffeeScript 中 for 循环的实际索引,AFAIK。您必须改用 while 循环。

关于javascript - CoffeeScript 中循环指针的增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29133027/

相关文章:

javascript - 使用 Flow 检查 React defaultProps

javascript - Reactjs:在 componentDidMount 中使用 for 循环

r - 如何将多个文件加载到 R 中而不覆盖现有文件?

javascript - MeteorJS : Error in Meteor. 调用

javascript - 如何获取div的内容高度

javascript - "unexpected console statement no-console"

javascript - 一旦到达屏幕中间而不是屏幕的任何位置,如何使用 Javascript 播放 GIF

Matlab 矢量化 for 循环(网格取决于循环索引)

javascript - 重新进入安全的异步函数执行

javascript - Rails 4 - CoffeeScript 无法正常工作