/** 扁平数组转树结构数组 */
export function dealArrayToTree(arr, id = "id", parentid = "parentid") {
function arrayToTree(items) {
const result = []
const itemMap = {
}
for (const item of items) {
const ID = item[id]
const PARENTID = item[parentid]
if (!itemMap[ID]) {
itemMap[ID] = {
children: [],
}
}
itemMap[ID] = {
...item,
children: itemMap[ID]['children'],
}
const treeItem = itemMap[ID]
// 这里后端返回数据的最上级父节点id是-1,根据个人数据做改定,比如判断0,null,undefined
if (PARENTID === "-1") {
result.push(treeItem)
} else {
if (!itemMap[PARENTID]) {
itemMap[PARENTID] = {
children: [],
}
}
itemMap[PARENTID].children.push(treeItem)
}
}
return result
}
return arrayToTree(arr)
}
/** 树结构数组转扁平数组 */
export function treeToArray(tree) {
const arr = []
function recursiveFunction(tree) {
for (let i = 0; i < tree.length; i++) {
arr.push(tree[i])
if (tree[i].children && tree[i].children.length) {
recursiveFunction(tree[i].children)
}
}
}
recursiveFunction(tree)
return arr
}
还没有评论,来说两句吧...