在用一些樹表插件的時候,這些樹表插件都會要求數據的機構是帶children屬性的對象數組,而后台如果沒有轉換為這種形式的list,就需要在前端進行轉換。
function listToTreeList(list) { // 將普通列表轉換為樹結構的列表 if (!list || !list.length) { return [] } let treeListMap = {}; for (let item of list) { treeListMap[item.id] = item } for (let i = 0; i < list.length; i++) { if (list[i].parentId && treeListMap[list[i].parentId]) { if (!treeListMap[list[i].parentId].children) { treeListMap[list[i].parentId].children = [] } treeListMap[list[i].parentId].children.push(list[i]); list.splice(i, 1); i-- } } return list }
封裝成一個函數,方便多次調用。
"對不起,我沒能變成你喜歡的樣子。"