2011-10-17 30 views
5

Duplicar posibles:
Javascript Array.forEach HowTo break?CoffeeScript: salir de un bucle foreach

Dado que tengo un bucle foreach, ¿cómo puedo salir de ese bucle en caso de que X es verdadera ?

Por ejemplo:

user.forEach (x,i) -> 

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

Gracias

+1

Esto es en realidad cubierto aquí: http://stackoverflow.com/questions/2641347/javascript-array-foreach-howto-break –

Respuesta

10

Básicamente, no lo hacen. forEach se pretende que sea esencialmente "funcional". Podría romperlo con una excepción, pero las excepciones deberían usarse para condiciones "excepcionales", no para controlar el flujo.

Si quiere romper, no quiere decir una forma funcional, quiere decir una iteración. Use un bucle for.

+0

O, como alternativa, utilice algo como jQuery's [$ .each] (http: // api .jquery.com/jQuery.each /), que se romperá si devuelve 'false'. –

+0

Estoy de acuerdo con esto, pero no estoy seguro de que la palabra "funcional" sea correcta, incluso en citas espantosas; el objetivo de 'forEach' es crear efectos secundarios. –

+0

Isaac, compare paraCada con, por ejemplo, mapa, con el cuerpo del bucle como un cierre. –