Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Про операторы ветвления (https://javascript.ru/forum/offtopic/48041-pro-operatory-vetvleniya.html)

der-coder 18.06.2014 20:24

Цитата:

Сообщение от kobezzza (Сообщение 317164)

Специально для обхода сущностей существует 2 вида цикла: for in и for of (причём это самый универсальный итератор, т.к. он работает с протоколом @@iterator).


for of - а что за хрень такая и где бы по русски про нее?

moron 18.06.2014 21:13

Цитата:

А вообще (ИМХО) для итераций лучше юзать итераторы, а не плясать с циклами, т.к. это удобнее и нагляднее.

[1, 2, 3].forEach(() => { ... })
Я всегда расматривали итератор как поведенческий паттерн(нечто позволяющее получить след элемент и сброс текущей позиции). А forEach больше похож на просто метод О_о Для меня это необычный взгляд.
Правильна ли моя позиция?

kobezzza 19.06.2014 11:51

Цитата:

Сообщение от moron (Сообщение 317170)
Я всегда расматривали итератор как поведенческий паттерн(нечто позволяющее получить след элемент и сброс текущей позиции). А forEach больше похож на просто метод О_о Для меня это необычный взгляд.
Правильна ли моя позиция?

Есть паттерн (или же ещё называют протокол) "итератор", он делает то, что вы говорите. А ещё термин "итератор" применяют к функциональным методам, вроде forEach, map, reduce и т.д.

Вообще итератор - это некоторое программное API, которое предоставляет возможность итерационных операций над коллекциями.

kobezzza 19.06.2014 11:52

Цитата:

Сообщение от der-coder (Сообщение 317168)
for of - а что за хрень такая и где бы по русски про нее?

Это новшество ECMAScript6, нативно работает пока только в FF, почитать можно на mdn.

nerv_ 19.06.2014 11:56

Цитата:

Сообщение от kobezzza
А вообще (ИМХО) для обхода лучше юзать итераторы, а не плясать с циклами, т.к. это удобнее и нагляднее.

они медленнее...

kobezzza 19.06.2014 12:13

Цитата:

Сообщение от nerv_ (Сообщение 317235)
они медленнее...

Ну я то юзаю Collection :p


Часовой пояс GMT +3, время: 07:13.