2012-07-01 30 views

Trả lời

30

Một vòng lặp for in có thể cung cấp cho bạn chìa khóa và giá trị.

for(i in foo) { 
    console.log (i, foo[i]) 
} 

Từ giao diện điều khiển:

foo = {bar: "baz"} 

Object 
bar: "baz" 
__proto__: Object 

for(i in foo) { console.log (i, foo[i]) } 
> bar baz 

Nếu đối tượng bạn đang Looping trên đã được thừa hưởng tài sản từ nguyên mẫu của nó, bạn có thể ngăn chặn các thuộc tính thừa hưởng từ được looped qua sử dụng Object.hasOwnProperty() chức năng như thế này :

for(i in foo) { 
    if (foo.hasOwnProperty(i)) { 
     console.log (i, foo[i]) 
    } 
} 
1

Bạn có thể lặp qua nó:

for(var i in foo) { 
    console.log(i + ": " + foo[i] + "<br />"); 
} 

Demo

0

Điều này có thể khác với các nền tảng khác nhau mà bạn hiện đang làm việc. Nếu bạn đang chạy từ thiết bị đầu cuối sau đó bạn sử dụng print, nếu bạn không có đối tượng console thì bạn có thể sử dụng document.write() và cứ tiếp tục như vậy.

Dưới đây là một cái gì đó mà bạn có thể sử dụng/đọc hiểu:

var foo = {bar: "baz", boolean: true, num: 2} 

for (i in foo) { 
//checks to see where to print. 
if (typeof console === 'object') 
    console.log(i + ": " + foo[i]); 
else if (typeof document === 'object') 
    document.write(i + ": " + foo[i]); 
else 
    print(i + ": " + foo[i]); 
} 

Ngoài ra, nếu bạn chỉ nói console.log(foo) trong Chrome/Firefox, trình duyệt thực hiện vòng lặp-nổi bật cho bạn và cung cấp cho bạn một pretty- in của đối tượng của bạn, vì vậy bạn không thực sự cần phải làm vòng lặp được hiển thị ở trên.

Bạn cũng có thể sử dụng console.debug(foo) thay vì console.log(foo), sự khác biệt là tinh tế. Bạn có thể đọc thêm về điều này tại http://getfirebug.com/wiki/index.php/Console_API

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