2010-12-10 128 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