Bootstrap

js数据库多级分类按树形结构打印

可以使用 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 环境中执行,就可以看到按层级打印出的结果了。

;