2015-03-18 78 views
2
for char, index in 'some string' 
    if condition 
     index += 2 

我有一個for循環,我在循環一個字符串,當滿足某些條件時,我想跳過當前一個字符後的一些字符數。在JavaScript中,我會做index += 2,它會工作,但由於某些未知原因,CoffeeScript編譯器將此代碼編譯爲JS for循環,該循環使用_i變量來保留實際索引並僅將當前值分配給index,這意味着通過改變index的值,我並沒有真的改變指針。CoffeeScript中循環指針的增量

我知道我可以使用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; 
    } 
} 

回答