以下是一个递归函数来格式化JavaScript对象的示例代码:
function formatObject(obj, indent = 0) {
let result = "";
// 遍历对象的所有属性
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
let value = obj[key];
// 根据缩进级别添加空格
result += " ".repeat(indent * 2);
// 如果属性值是对象,则递归调用formatObject函数
if (typeof value === "object") {
result += `${key}:\n${formatObject(value, indent + 1)}`;
} else {
result += `${key}: ${value}`;
}
result += "\n";
}
}
return result;
}
// 示例用法
const obj = {
a: 1,
b: {
c: 2,
d: {
e: 3
}
},
f: 4
};
console.log(formatObject(obj));
输出结果将会是:
a: 1
b:
c: 2
d:
e: 3
f: 4
该递归函数接受两个参数:要格式化的对象和缩进级别。它遍历对象的所有属性,并根据缩进级别添加相应数量的空格来格式化输出。如果属性的值是一个对象,则递归调用formatObject函数来格式化嵌套的对象。最后,该函数返回格式化后的字符串。