可以使用 JavaScript 来按层级打印 categories
数组。首先,需要将这个数组转换成一个树形结构,然后再进行递归或者迭代来打印每个层级的内容。
以下是一个示例代码,用来实现这个功能:
const categories = [
{ id: 2, name: "手机", parent: 1 },
{ id: 6, name: "电脑", parent: 1 },
{ id: 3, name: "苹果", parent: 2 },
{ id: 4, name: "小米", parent: 2 },
{ id: 5, name: "华为", parent: 2 },
{ id: 7, name: "笔记本", parent: 6 },
{ id: 8, name: "台式机", parent: 6 },
{ id: 11, name: "衬衫", parent: 10 },
{ id: 12, name: "裤子", parent: 10 },
{ id: 1, name: "电子产品", parent: 0 },
{ id: 9, name: "服装", parent: 0 },
{ id: 13, name: "女装", parent: 9 },
{ id: 10, name: "男装", parent: 9 },
{ id: 14, name: "裙子", parent: 13 },
{ id: 15, name: "上衣", parent: 13 },
{ id: 16, name: "萝莉", parent: 13 },
{ id: 17, name: "御姐", parent: 13 },
];
// 将数组转换为树形结构
function buildTree(categories, parent = 0) {
let node = {};
categories
.filter(item => item.parent === parent)
.forEach(item => {
node[item.id] = {
id: item.id,
name: item.name,
children: buildTree(categories, item.id)
};
});
return node;
}
// 递归打印树形结构
function printTree(tree, level = 0) {
Object.values(tree).forEach(node => {
console.log(" ".repeat(level) + node.name);
if (node.children) {
printTree(node.children, level + 1);
}
});
}
// 构建树
const tree = buildTree(categories);
// 打印树形结构
printTree(tree);
这段代码首先定义了 buildTree
函数,它会根据 categories
数组构建一个树形结构。然后定义了 printTree
函数来递归打印这个树形结构,每一层使用两个空格缩进来表示层级关系。
你可以将这段代码复制粘贴到你的 JavaScript 环境中执行,就可以看到按层级打印出的结果了。