我有这样一个对象:

const myObject = {
   "a":"a",
   "b":{
      "c":"c",
      "d":{
         "e":"e",
         "f":{
            "g":"g",
            "h":{
               "i":"i"
            }
         }
      }
   }
};

但是当我尝试使用console.log(myObject)显示它时,我收到这样的输出:

{ a: 'a', b: { c: 'c', d: { e: 'e', f: [Object] } } }

我怎样才能得到完整的对象,包括属性f的内容?


当前回答

节点REPL有一个内置的解决方案来覆盖对象的显示方式,请参见这里。

REPL模块内部在打印值时使用util.inspect()。 然而,实效。Inspect将调用委托给对象的Inspect () 函数,如果有的话。

其他回答

这两种用法都可以应用:

// more compact, and colour can be applied (better for process managers logging)
console.dir(queryArgs, { depth: null, colors: true });

// get a clear list of actual values
console.log(JSON.stringify(queryArgs, undefined, 2));

你需要使用util.inspect():

const util = require('util')

console.log(util.inspect(myObject, {showHidden: false, depth: null, colors: true}))

// alternative shortcut
console.log(util.inspect(myObject, false, null, true /* enable colors */))

输出

{ a: 'a',  b: { c: 'c', d: { e: 'e', f: { g: 'g', h: { i: 'i' } } } } }

您可以使用JSON。Stringify,并获得一些漂亮的缩进,以及可能更容易记住语法。

console.log(JSON.stringify(myObject, null, 4));

{
    "a": "a",
    "b": {
        "c": "c",
        "d": {
            "e": "e",
            "f": {
                "g": "g",
                "h": {
                    "i": "i"
                }
            }
        }
    }
}

第三个参数设置缩进级别,因此您可以根据需要进行调整。

如果需要,请在JSON stringify MDN文档中查看更多详细信息。

我觉得这可能对你有用。

const myObject = { “一”:“一”, " b ": { “c”:“c”, " d ": { “e”:“e”, " f ": { “g”:“g”, " h ": { “我”:“我” } } } } }; console.log (JSON。stringify(myObject, null, '\t'));

如本回答所述:

JSON。Stringify的第三个参数定义了空格插入 打印格式。它可以是字符串或数字(空格数)。

从Node.js 6.4.0开始,这个问题可以用util.inspect.defaultOptions优雅地解决:

require("util").inspect.defaultOptions.depth = null;
console.log(myObject);