如何在 JavaScript 中整齐地格式化递归控制台记录的 Json 对象?

How can I Neatly format a recursed console-logged Json Object in JavaScript?

我递归地列出了一个嵌套的 json 对象。当我控制日志时,我获取数据的方式很难知道一组对象的开始或结束位置。

如何格式化响应?

const obj = {
      fullName: 'Ram Kumar',
      age: 31,
      gender: male
    }
  },
  fullName: 'Ranbir Singh',
    age: 22,
    gender: male
  }
},

function printAllVals(obj) {
  for (let prop in obj) {
    if (typeof obj[prop] === "object") {
      printAllVals(obj[prop])
    } else {
      console.log(prop + ':' + obj[prop]);
    }
  }
}

我得到:

fullName:Ram Kumar
age: 31
gender: male
fullName:Ranbir Singh
age: 22
gender: male

我想要的是这样的东西。为了清晰或易于理解而格式化或分隔对象的任何内容:

fullName:Ram Kumar
age: 31
gender: male 
---
fullName:Ranbir Singh
age: 22
gender: male

您的对象看起来无效,因此我添加了一个“子对象”sub-key 以向下迭代。

在调用递归函数调用之前,打印一个 line-separator.

const printAllVals = (obj) => {
  for (let prop in obj) {
    if (typeof obj[prop] === 'object') {
      console.log('---');                  // Print line, before the child.
      printAllVals(obj[prop])
    } else {
      console.log(`${prop}: ${obj[prop]}`);
    }
  }
}

const obj = {
  fullName: 'Ram Kumar',
  age: 31,
  gender: 'male',
  child: {                                // sub-key?
    fullName: 'Ranbir Singh',
    age: 22,
    gender: 'male'
  }
};

printAllVals(obj);
.as-console-wrapper { top: 0; max-height: 100% !important; }