很好的一篇文章:https://segmentfault.com/a/1190000020732216
1、树形结构数据:
tree:[{
"id": 2,
"name": "测试一号店",
"parentId": 0,
},
{
"id": 111,
"name": "李先生测试",
"parentId": 0,
},
{
"id": 1,
"name": "测试店",
"parentId": 0,
},
{
"id": 17,
"name": "Jennifer Hernandez",
"parentId": 0,
},
{
"id": 18,
"name": "Deborah Johnson",
"parentId": 0,
},
{
"id": 13,
"name": "测试门店名称",
"parentId": 0,
},
{
"id": 14,
"name": "测试门店名称2233",
"parentId": 2,
},
{
"id": 4,
"name": "测试三号店",
"parentId": 1,
},
{
"id": 3,
"name": "测试二号点",
"parentId": 1,
}]
2、转换方式:
listToTree (list, options = {}){
const {
keyField = 'id',
childField = 'children',
parentField = 'parentId'
} = options
const tree = []
const record = {}
for (let i = 0, len = list.length; i < len; i++) {
const item = list[i]
const id = item[keyField]
if (!id) {
continue
}
if (record[id]) {
item[childField] = record[id]
} else {
item[childField] = record[id] = []
}
if (item[parentField]) {
const parent = item[parentField]
if (!record[parent]) {
record[parent] = []
}
record[parent].push(item)
} else {
tree.push(item)
}
}
return tree
},
扁平结构转化树形结构
最新推荐文章于 2023-07-05 22:06:51 发布