我有东西。它们是嵌套的,实际上我不知道对象中包含的参数是什么。例如,它可以是
{
"option1": "value1",
"option2": "value2",
"option3": {
"suboption1": "subvalue1",
"suboption2": {
"subsuboption1": "subsubvalue1"
}
},
"option4": "value4"
}
我需要打印这个对象,如下所示:
<span class="depth-0"><b>option1</b>: value1</span>
<span class="depth-0"><b>option2</b>: value2</span>
<span class="depth-0"><b>option3</b>:</span>
<span class="depth-1"><b>suboption1</b>: subvalue1</span>
<span class="depth-1"><b>suboption2</b>:</span>
<span class="depth-2"><b>subsuboption1</b>: subsubvalue1</span>
<span class="depth-0"><b>option4</b>: value4</span>
这看起来是一项简单的任务,但我在深度上的缩进有一个很大的问题。也许有人也有类似的问题。我在我的项目中使用javascript和lodash lib。我需要一些函数在我的模板。
发布于 2016-06-22 18:02:35
如果使用JSON.stringify()
,给space
参数"--"
或一个选项卡,这取决于你想要它的方式:
console.log(JSON.stringify({
"option1": "value1","option2": "value2",
"option3": {
"suboption1": "subvalue1",
"suboption2": {
"subsuboption1": "subsubvalue1"
}
},
"option4": "value4"
}, null, '--'));
发布于 2016-06-22 18:14:12
你可以试试下面的
var object = {
"option1": "value1",
"option2": "value2",
"option3": {
"suboption1": "subvalue1",
"suboption2": {
"subsuboption3": "subsubvalue3"
}
},
"option4": "value4"
};
function paint(obj, level) {
for (var key in obj) {
if (typeof obj[key] === "object") {
console.log('<span class="depth-"' + level +'><b>'+key + '</b>: </span>');
paint(obj[key], level + 1);
} else {
console.log('<span class="depth-"' + level + '><b>'+key + '</b>: '+ obj[key]+'</span>');
}
}
}
paint(object, 0);
https://stackoverflow.com/questions/37964508
复制相似问题