Изучаем 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
Спасибо за внимание!
-
- Михаил Русаков
Комментарии (1):
Спасибо
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.