2012-06-14 19 views
17

qualcuno sa se è possibile ottenere un javascriptCoffeescript. per/in loop

per/in loop

da CoffeeScript?

realtà vorrebbe scrivere la funzione js

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

in CoffeeScript.

+0

un 'caffè programma-script, ma non dovrebbe funzionare così com'è? – gdoron

+0

No, coffeescript ha altri loop che converte in loop js. di solito in un modo conveniente. – citykid

+1

Poi +1, mi piacerebbe sentire anche la risposta ... ':' – gdoron

risposta

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

al punto, thx! – citykid

25

Questo potrebbe essere un po 'di confusione per i principianti di CoffeeScript, ma il ciclo for..in viene utilizzato per iterare su array, mentre il ciclo for..of viene utilizzato per iterare su oggetti.

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

Inoltre, per limitare questo per possedere proprietà dell'oggetto (cassonetti ereditato proprietà tramite hasOwnProperty()), il "proprio" parola chiave può essere aggiunto:

for own key, value of o 
+0

giusto, e ora lo trovo anche nel denso docu, grazie mille, entrambi utili – citykid

+0

Questo è un po 'folle dal momento che js è tipo di opposto. [For ... in] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) è per gli oggetti e [Per ... di] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) è per gli array (iterables) –