Всем привет! В этом материале рассмотрим, как использовать циклы в языке программирования coffeescript .

Изучаем CoffeeScript. Циклы.

Всем привет! В этом материале рассмотрим, как использовать циклы в языке программирования coffeescript.

While

Цикл while очень похож в использовании на тот же цикл в чистом javascript.

while isReady
  do something

Нужно в одну строчку?

while isReady then do something

Или так

do something while isReady

С отрицанием

while not isReady
  do prepare

То же отрицание можно записать и с ключевым словом until

until isReady
  do prepare

Цикл do while в языке coffeescript не предусмотрен. Впрочем, как и for. Однако, в coffeescript есть цикл for in. Давайте о нем и поговорим.

For in

for i in [0..10]
  update i

Такой цикл вызывает функцию update с аргументами от 0 до 10.

Если вам нужно изменить инкремент, то используйте ключевое слово by.

update i for i in [0...10] by 7 // может быть и вещественное число

Если нужно проверить что-то на истинность, то можно использовать ключевое слово when.

update i for i in [0..10] when isPrime i // если isPrime возвращает true, то цикл выполняется

Если вы хотите сохранить простые числа в массив, то можете написать так

primeNumbers = (i for i in [0..100] when isPrime i by 2)

Если вам нужно записать в какую-то переменную сам счетчик, то можно сделать следующее

remove_index for element, index in array when element in rightElements

index - переменная, содержащая наш счетчик. Как видите, нужно просто поставить запятую и написать желаемое имя для переменной.

For of

Цикл for of предназначен для перебора ключей объектов и является оберткой для цикла for in в javascript. Код ниже выведет название всех ключей в объекте object.

console.log property for property of object

Если вам нужно вывести значения этих ключей, то вы можете написать так

console.log value for property, value of object

Запятая играет здесь ту же роль, что и в цикле for in.

Как известно, цикл for in в javascript собирает все свойства: как родные, так и свойства прототипов. Если вы хотите получить только собственные свойства, то можете использовать ключевое слово own в coffeescript.

console.log value for own property, value of object

Спасибо за внимание!