Coffeescript: Излезте от цикъл forEach

Възможен дубликат:
Javascript Array.forEach HowTo прекъсва?

Като се има предвид, че имам цикъл forEach, как да изляза от този цикъл, в случай че X е вярно?

Например:

user.forEach (x,i) ->

                    if x.status == "available"
                        -- I want to break here - 

Благодаря


person donald    schedule 17.10.2011    source източник
comment
Това всъщност е описано тук: stackoverflow.com/questions/2641347 /   -  person Charlie Martin    schedule 17.10.2011


Отговори (1)


По принцип недей. forEach е предназначен да бъде по същество "функционален". Можете да го прекъснете с изключение, но изключенията трябва да се използват за "изключителни" условия, а не за контрол на потока.

Ако искате да прекъснете, нямате предвид функционална форма, имате предвид итерация. Използвайте for цикъл.

person Charlie Martin    schedule 17.10.2011
comment
Или, алтернативно, използвайте нещо като $.each на jQuery, което ще се повреди, ако върнете false . - person Trevor Burnham; 17.10.2011
comment
Съгласен съм с това, но не съм сигурен, че думата функционален е правилна, дори и в плашещи кавички; целият смисъл на forEach е да създава странични ефекти. - person ; 17.10.2011
comment
Isaac, сравни forEach с, напр. map, с тялото на цикъла като затваряне. - person Charlie Martin; 17.10.2011
comment
Разбира се, вие можете да създадете странични ефекти с map, като модифицирате вашите затворени променливи, но това означава, че го използвате нефункционално. - person ; 18.10.2011
comment
И можете да правите неща във forEach, които нямат странични ефекти. - person Charlie Martin; 18.10.2011