2012-06-14 48 views
17

Bất kỳ ai biết nếu nó có thể để có được một javascriptCoffeescript. cho/trong vòng lặp

cho/trong vòng lặp

từ coffeescript?

Trên thực tế muốn viết hàm js

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

trong coffeescript.

+0

Không phải là một 'cà phê lập trình viên, nhưng nó không hoạt động giống như nó? – gdoron

+0

Không, coffeescript có vòng lặp khác mà nó chuyển đổi thành vòng js. thường là một cách thuận tiện. – citykid

+1

Sau đó +1, tôi cũng muốn nghe câu trả lời ... ':)' – gdoron

Trả lời

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

đến điểm, thx! – citykid

25

Điều này có thể hơi khó hiểu đối với người mới sử dụng CoffeeScript, nhưng vòng lặp for..in được sử dụng để lặp qua mảng, trong khi vòng lặp for..of được sử dụng để lặp qua đối tượng.

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

Ngoài ra, để hạn chế này để thuộc tính của đối tượng (bỏ qua đặc tính di truyền qua hasOwnProperty()) sở hữu, từ khóa "của riêng" có thể được thêm vào:

for own key, value of o 
+0

, và bây giờ tôi thậm chí còn tìm thấy nó trong docu dày đặc, thx rất nhiều, cả hai đều hữu ích – citykid

+0

Đó là loại điên vì js là loại ngược lại. [For ... in] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) dành cho các đối tượng và [For ... of] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) là dành cho mảng (iterables) –

Các vấn đề liên quan