1234567891011121314151617181920212223242526272829303132333435 |
- export const listToTree = (list) => {
- var arr = []
- let items = {}
- var idsStr = ''
-
- for (let i = 0; i < list.length; i++) {
- let key = list[i].parentId
- if (items[key]) {
- items[key].push(list[i])
- } else {
- items[key] = []
- items[key].push(list[i])
- }
- idsStr += idsStr === '' ? list[i].id : ',' + list[i].id
- }
- for (var key in items) {
- if (idsStr.indexOf(key) === -1) {
- arr=formatTree(items, key)
- }
- }
- delete arr[0].parentId
- return arr
- }
- function formatTree(items, parentId) {
- let result = []
- if (!items[parentId]) {
- return result
- }
- for (let t of items[parentId]) {
- t.children = formatTree(items, t.id)
- result.push(t)
- }
- return result
- }
|