节点未记录更深的子对象

时间:2012-11-14 17:59:18

标签: javascript json node.js

这可能已经回答了,但我确实进行了搜索。

在js文件中:

console.log({
  a: 1,
  b: { c: 1},
  d: [{e:1},{f:1}],
  g: [{h:[1,2,3]}]
});

这是实际打印的内容:

{ a: 1,
  b: { c: 1 },
  d: [ { e: 1 }, { f: 1 } ],
  g: [ { h: [Object] } ]
}

注意'h'值,我可以打印吗?

3 个答案:

答案 0 :(得分:1)

您可以使用for loop对其进行迭代..

var obj = {
    a: 1,
    b: {c: 1},
    d: [{e: 1}, { f: 1}],
    g: [{  h: [1, 2, 3]}]
};

var data = obj.g[0].h ;

for(var i =0; i <data.length ; i++){
    console.log(data[i])
}​

<强> Check Fiddle

答案 1 :(得分:1)

  1. 阅读util.inspect()

    的文档

    它允许您指定要打印的深度: The default is to only recurse twice. To make it recurse indefinitely, pass in null for depth.

    要使用它,您可以拨打console.log(util.inspect(yourObj, true, null));

  2. console.dir()表示它使用util.inspect(),但没有显示修改inspect()调用的参数,因此它可能只会递归两次。

答案 2 :(得分:1)

我已使用JSON.stringify()来实现它,您可以使用参数来确定格式。

如上所述,util.inspect()也有效。