2012-06-14 15 views
17

Alguien sabe si es posible conseguir un javascriptCoffeescript. para/en bucle

para/en bucle

de CoffeeScript?

En realidad le gustaría escribir la función js

function logobject(o) { 
    for (p in o) 
    console.log(p + "=" + o[p]) 
} 

en CoffeeScript.

+0

un 'café -script' programador, pero ¿no debería funcionar tal como es? – gdoron

+0

No, coffeescript tiene otros bucles que convierte en bucles js. usualmente de una manera conveniente. – citykid

+1

Luego +1, me gustaría escuchar la respuesta ... ':)' – gdoron

Respuesta

28
console.log "#{k}=#{v}" for k, v of o 
No
+1

al grano, ¡gracias! – citykid

25

Esto podría ser un poco confuso para los principiantes de CoffeeScript, pero el bucle for..in se usa para iterar sobre las matrices, mientras que el bucle for..of se usa para iterar sobre los objetos.

logobject = (o) -> 
    console.log key + "=" + value for key, value of o 

Además, para limitar este de poseer propiedades del objeto (saltos heredan propiedades a través de hasOwnProperty()), la "propia" palabra clave puede ser añadido:

for own key, value of o 
+0

correcta, y ahora incluso la encuentro en el documento denso, mucho, ambas útiles – citykid

+0

Eso es un poco loco ya que js es tipo de lo opuesto. [For ... in] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) es para objetos y [For ... of] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) es para matrices (iterables) –