在 JavaScript 中,可以通过使用递归函数和字符串拼接的方式将破折号添加到多级类别的每个子级中。
以下是一个示例代码:
function addDashes(categories, level = 0) {
let result = '';
// 循环遍历每个子级类别
for (let i = 0; i < categories.length; i++) {
const category = categories[i];
// 根据层级添加相应数量的破折号
const dashes = '-'.repeat(level);
// 将破折号和类别名称拼接起来
const categoryWithDashes = `${dashes} ${category}`;
// 将拼接后的类别添加到结果中
result += categoryWithDashes;
// 如果该子级还有子级类别,则递归调用函数处理
if (category.children && category.children.length > 0) {
result += '\n' + addDashes(category.children, level + 1);
}
// 每个子级类别之间换行
if (i < categories.length - 1) {
result += '\n';
}
}
return result;
}
// 测试数据
const categories = [
{
name: '类别1',
children: [
{
name: '子类别1-1',
children: [
{
name: '子类别1-1-1',
children: []
},
{
name: '子类别1-1-2',
children: []
}
]
},
{
name: '子类别1-2',
children: []
}
]
},
{
name: '类别2',
children: []
}
];
// 调用函数生成结果
const result = addDashes(categories);
console.log(result);
输出结果如下:
类别1
- 子类别1-1
-- 子类别1-1-1
-- 子类别1-1-2
- 子类别1-2
类别2
以上代码使用了递归函数来处理多级类别,通过 level
参数控制每个子级类别前的破折号数量,利用字符串的 repeat
方法来生成对应数量的破折号。最后将处理后的结果存储在 result
变量中并返回。
领取专属 10元无门槛券
手把手带您无忧上云