【发布时间】:2022-01-09 17:24:21
【问题描述】:
我想打印一个按级别格式化的列表。我拥有的是一个对象数组。
每个对象都有一个级别,例如 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",
},
};
【问题讨论】:
-
你想在console.log中这样打印吗?
-
ifs 中的条件应该有 == 。单个 = 对位进行验证,而不是对您需要的值进行验证
-
一旦您获得了级别信息,请使用
value.toString().padStart(n*level, " "),其中n可以使其尽可能宽。 -
为什么不向我们展示您的 OBJECT(如果不是字符串,则不是 JSON)
标签: javascript arrays object