LiveScript для цикла не работает или у меня неправильный синтаксис

При нормальных обстоятельствах (vanilla JS) я мог бы сделать что-то вроде этого -

var mystring = "foo";
for(i = 0; i < mystring.length; i++) {
    console.log(i);
}

Который вернется [0,1,2]`

Я не могу найти синтаксис для создания такого поведения в LiveScript. Самое близкое, что я пришел - это

 mystring = \foo
 for i from 0 to my.length-1 // note the -1
     console.log i

который компилируется в этот JavaScript -

var mystring, i$, to$, i;
mystring = 'foo';
for (i$ = 0, to$ = mystring.length - 1; i$ <= to$; ++i$) {
  i = i$;
  console.log(i);
}

Это также возвращает [0,1,2],

Если я не включу -1 возвращенный массив [0,1,2,3] что ожидается из-за того, как LiveScript компилируется в JavaScript в этом случае.

Разве невозможно получить чистое условие "меньше чем" в LiveScript?

1 ответ

Решение

Вы хотите использовать tilне to

for i from 0 til my.length

Циклы LiveScript

Другие вопросы по тегам