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

StackOverflow https://stackoverflow.com//questions/25085571

  •  02-01-2020
  •  | 
  •  

Вопрос

При нормальных обстоятельствах (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?

Это было полезно?

Решение

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

for i from 0 til my.length

Циклы LiveScript

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top