簡體   English   中英

節點console.log / util.inspect嵌套對象/數組

[英]node console.log / util.inspect for nested Object / Array

對於嵌套的對象或數組

var obj = {
  foo:
  {
    foo:
    {
      foo:
      {
        foo:
        {
          foo:
          {
            foo: 'foo'
          }
        }
      }
    }
  }
};
console.log(obj);
util.debug(obj);
util.debug(util.inspect(obj));

console.logutil.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 ,可能我無法在調試時對所有對象輸出執行此操作。 不是通用方法。


編輯2:

解:

console.log(util.inspect(obj,{ depth: null }));

輸出:

{ foo: { foo: { foo: { foo: { foo: { foo: 'foo' } } } } } }

涼。 這就是我要的!

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' } } } } } }

使用JSON.stringify

var obj = {
  foo:
  {
    foo:
    {
      foo:
      {
        foo:
        {
          foo:
          {
            foo: 'foo'
          }
        }
      }
    }
  }
};
console.log(JSON.stringify(obj));

結果:

{"foo":{"foo":{"foo":{"foo":{"foo":{"foo":"foo"}}}}}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM