2010-12-10 116 views
2

當我不知道里面有什麼時,我該如何閱讀Javascript對象?閱讀Javascript對象

我一直在研究node.js,並有一個變量,我真的不知道里面有什麼。當我嘗試使用sys.puts時:

sys.puts(headers) // returns [object Object] 

如果在JavaScript中有類似print_r的東西,那本來就不錯。

+0

您可以嘗試將其轉換爲JSON字符串... – 2010-12-10 13:30:47

回答

2

大多數Web瀏覽器可以使用JSON對象來打印對象的內容,

writeln(JSON.stringify(your_object)); 

如果失敗,你可以創建自己的stringifier;

var stringify = function(current) { 
    if (typeof current != 'object') 
     return current; 

    var contents = '{'; 
    for (property in current) { 
     contents += property + ": " + stringify(current[property]) + ", "; 
    } 

    return contents.substring(0, contents.length - 2) + "}"; 
} 

var my_object = {my_string: 'One', another_object: {extra: 'Two'}}; 
writeln(stringify(my_object)); 
4

你也可以遍歷其屬性與http://www.jsfiddle.net/gaby/CVJry/3/

for (var item in headers) 
{ 
    // item is the name of the property 
    // headers[item] is the value 
} 

例如(需要控制檯

如果你想限制結果的直接性(不是通過原型鏈繼承)然後使用hasOwnProperty方法。

例如在http://www.jsfiddle.net/gaby/CVJry/2/

+0

不應該將'item'變量聲明在某處嗎? – 2010-12-10 14:09:18

+0

@Šime,它應該..添加:) – 2010-12-14 14:38:24

1

可以遍歷你的對象以瞭解它的性能&他們的價值觀

假設你的目標是

var emp = { 
      name:'abc', 
      age:12, 
      designation:'A' 
     } 

現在你可以在JS

閱讀其詳細信息
for(property in emp){ 
alert(emp[property] + " " +property); 
} 

如果你在Firefox瀏覽器中添加螢火蟲,打開它&在Firebug控制檯的JS或JS窗口中寫入。

console.log(a); 
0

如果你需要它只是爲了檢查什麼在一個對象(即,它是與你有關的由於某種原因,但你並不需要在你的腳本功能),你可以使用Firebug拿到對象並檢查它究竟是什麼。

+0

我正在在終端上工作。 – 2010-12-13 12:39:55