可以使用 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 環境中執行,就可以看到按層級打印出的結果了。