vue.js 如何增加console.log的深度?

gwo2fgha  于 2023-05-29  发布在  Vue.js
关注(0)|答案(2)|浏览(192)

我正在使用Vitest,在我的测试中,我想控制台日志输出的东西。但是如果我这样记录:

console.log({ a: { b: { c: { d: { e: 1 } } } } });

我得到这个输出:

{ a: { b: { c: [Object] } } }

console.dir()也是如此。有什么方法可以增加Vitest中对象日志的深度吗?我正在使用JSON.stringify()来解决这个问题,但如果将它的格式设置为默认格式会很有帮助。

aiazj4mn

aiazj4mn1#

question
使用250R回答:
使用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' } } } } }

或者你可以在问题页面上找到做同样事情的其他方法;你可以挑你觉得舒服的

2ul0zpep

2ul0zpep2#

你可以在没有额外lib的情况下这样做:

function logAllParameters(obj, prefix = '') {
for (let key in obj) {
  if (typeof obj[key] === 'object') {
    logAllParameters(obj[key], prefix + key + '.');
  } else {
    console.log(prefix + key + ':', obj[key]);
  }
 }
}

const obj = { a: { b: { c: { d: { e: 1 } } } } };
logAllParameters(obj);

相关问题