我想列印出按級別格式化的串列。我擁有的是一組物件。
每個物件都有一個級別,例如 0、1、2。0 是最上層,2 是最內層。我想列印出帶有縮進每個內部級別的串列
所以串列看起來像這樣
0
1
1
2
2
我的代碼是什么樣的:
for (let category of json.categories) {
if ((category.level = 0)) {
console.log(
category.category "https://www.example.com/" category.seo_name
);
}
else if ((category.level = 1)) {
console.log(
" "
category.category
" "
"https://www.example.com/"
category.seo_name
);
}
else if ((category.level = 2)) {
console.log(
" "
category.category
" "
"https://www.example.com/"
category.seo_name
);
}
}
這看起來確實很笨重,更糟糕的是,它不起作用并且沒有縮進。
物件示例:
const json = {
categories: [
{
category_id: "198",
category: "Appliances",
seo_name: "appliances",
level:0
},
{
category_id: "184",
category: "Industrial Appliances",
seo_name: "industrial-appliances",
level:1
},
],
params: {
visible: false,
sort_order: "asc",
},
};
uj5u.com熱心網友回復:
如何使用 PRE 并使用級別來分隔它,就像評論中建議的那樣
const obj = { categories: [ { category_id: "198", category: "Appliances", seo_name: "appliances", level:0 }, { category_id: "184", category: "Industrial Appliances", seo_name: "industrial-appliances", level:1 }, { category_id: "187", category: "Appliances", seo_name: "appliances", level:2 }, ], params: { visible: false, sort_order: "asc", }, };
const container = document.querySelector('pre');
container.innerHTML = obj.categories
.map(({level,category,seo_name}) => `${"".padStart(level,"\t")}${category} https://www.example.com/${seo_name}`)
.join("\n")
<pre></pre>
uj5u.com熱心網友回復:
var data = [{ level: 0 }, { level: 1 }, { level: 1 }, { level: 2 }, { level: 2 }];
for (let obj of data) {
let result = "";
result = ' '.repeat(obj.level * 4) obj.level;
console.log(result)
}
如果你想要一根線。
var data = [{ level: 0 }, { level: 1 }, { level: 1 }, { level: 2 }, { level: 2 }];
data.forEach(obj => console.log(' '.repeat(obj.level * 4) obj.level))
uj5u.com熱心網友回復:
您正在使用而不是在您的if條件內分配值。此外,一種更簡潔的方法是使用而不是(在這種情況下和我認為至少是),并使用一些回圈,以便您可以輕松地隨時更改可以在縮進中留下的空格數,而不是像您一樣手動計算在你的代碼中有。===switchif
var data = [{ level: 0 }, { level: 1 }, { level: 1 }, { level: 2 }, { level: 2 }];
for (let element of data) {
let result = "";
switch (element.level) {
case 1:
for (let index = 0; index < 4; index )
result = " ";
result = element.level;
break;
case 2:
for (let index = 0; index < 8; index )
result = " ";
result = element.level;
break;
default:
result = element.level;
}
console.log(result)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411942.html
標籤:
