为了尽可能简洁,我试图弄清楚是否有办法允许控制台使用console.log()显示对象的全部内容。我使用node.js管道进入Sublime Text 3中的控制台。我没有运行代码本身的问题,只显示输出。
我有一个我创建的链表对象:
{ value: 1, next: { value: 2, next: { value: 3, next: { value: 4, next: { value: 5, next: null}}}}}
当它输出到控制台时,它显示类似于以下内容:
{ value: 1, next:
{ value: 2, next: { value: 3, next: [Object]}}
简而言之,整个对象无论以任何方式都是不可见或可扩展的。有什么方法可以强制控制台更详细并显示整个对象吗?
答案 0 :(得分:2)
您可以做的一种方法是将JSON转换为字符串。
因此,如果您的文件内容是在变量x中获取的。你可以这样做:
console.log(JSON.stringify(x));
这会将您的JSON数据转换为可以轻松打印到控制台的字符串。
这是另一种解决方法:
console.log(require('util').inspect(x, {showHidden: false, depth: null}));
问题是console.log用于打印字符串,而不是对象。因此,它会自动尝试将所有内容转换为字符串,并且在此过程中(因为自动转换不是将对象转换为字符串的正确方法),一些数据会丢失。
您可以使用第二种解决方法,但我强烈建议您坚持使用第一种解决方法,因为它是更好的方法。