Node not logging deeper subobject

This may have been answered, but I did search.

In js file:

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

This is what actually prints:

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

Notice 'h' value, can I print this?

You can use for loop to iterate over it..

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. Read the docs for util.inspect()

    It allows you to specify the depth to print at: The default is to only recurse twice. To make it recurse indefinitely, pass in null for depth.

    To use it, you could call console.log(util.inspect(yourObj, true, null));

  2. console.dir() says it uses util.inspect(), but doesn't show parameters to modify the inspect() call, so it would probably only recurse twice, too.

I have used JSON.stringify() to achieve it, you can use parameters to determine the formatting.

As written above, util.inspect() also works.