2012-06-14 1 views
17

ktoś wie, czy jest możliwe, aby uzyskaćCoffeescript. w/w pętli

JavaScript do/z pętli

z coffeescript?

Właściwie chciałby napisać funkcję JS

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

w coffeescript.

+0

Nie 'kawy -script' programista, ale czy nie powinien działać tak jak jest? – gdoron

+0

Nie, coffeescript ma inne pętle, które konwertuje do pętli js. zazwyczaj w wygodny sposób. – citykid

+1

Następnie +1, również chciałbym usłyszeć odpowiedź ... ':)' – gdoron

Odpowiedz

25

Może to być nieco mylące dla początkujących użytkowników CoffeeScript, ale pętla for..in służy do iteracji po tablicach, podczas gdy pętla for..of służy do iteracji po obiektach.

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

Ponadto, aby ograniczyć to do własnych właściwości obiektu (przeskakuje dziedziczone właściwości poprzez hasOwnProperty()), przy czym "własne" słowo kluczowe można dodać:

for own key, value of o 
+0

w prawo, a teraz nawet znajduję go w gęstym dokumencie, bardzo dużo, zarówno pomocny – citykid

+0

To jest trochę szalone, ponieważ js jest wręcz przeciwnie. [Dla ... w] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) dotyczy obiektów i [For ... of] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) jest dla tablic (iterables) –