对于嵌套的Object或Array
var obj = {
foo:
{
foo:
{
foo:
{
foo:
{
foo:
{
foo: 'foo'
}
}
}
}
}
};
console.log(obj);
util.debug(obj);
util.debug(util.inspect(obj));
console.log
或util.debug
+ util.inspect
{ foo: { foo: { foo: [Object] } } }
DEBUG: [object Object]
DEBUG: { foo: { foo: { foo: [Object] } } }
在某个深度,它只显示[Object]
,没有更详细的信息。
由于我无法调查实际值,因此在调试时总是很烦人。
node
(或V8)为什么这样实现?有没有解决方法?
感谢。
编辑: 我收到了一个建议
console.log(JSON.stringify(obj));
结果
{"foo":{"foo":{"foo":{"foo":{"foo":{"foo":"foo"}}}}}}
它有点工作,但显然整体是stringify
,可能我不能在调试时对所有对象输出执行此操作。不是通用方法。
EDIT2:
溶液:
console.log(util.inspect(obj,{ depth: null }));
输出:
{ foo: { foo: { foo: { foo: { foo: { foo: 'foo' } } } } } }
冷却。这就是我想要的!
答案 0 :(得分:14)
util.inspect()
需要第二个options
参数,您可以在其中指定depth
。默认值为2.
http://nodejs.org/api/util.html#util_util_inspect_object_options
所以:
util = require('util');
var obj = { foo: { foo: { foo: { foo: { foo: { foo: 'foo' } } } } } };
console.log(util.inspect(obj, {depth:12}));
......收益率:
{ foo: { foo: { foo: { foo: { foo: { foo: 'foo' } } } } } }
答案 1 :(得分:2)
使用JSON.stringify
:
var obj = {
foo:
{
foo:
{
foo:
{
foo:
{
foo:
{
foo: 'foo'
}
}
}
}
}
};
console.log(JSON.stringify(obj));
结果:
{"foo":{"foo":{"foo":{"foo":{"foo":{"foo":"foo"}}}}}}