我们在工作候要对这样的数组进行处理,每个数组元素包括节点名称,父节点名称,如果该元素的父节点元素等于某个元素的节点名称,那么该元素在这个元素的下面。
具体为:
这样的数组要做转化,直接上代码吧~
位置:src/utils/Method
class Method {/*** @module 树形数组** @param arrList 数组集合* @param id 子id* @param fid 父id* @param children 将子id放入fid的名字,默认children*/static ArrayTree = (allList: Array<any>, id: string, fid: string, children:string = 'children') => {let deepList = JSON.parse(JSON.stringify(allList));let filterArr:any = []const tree = deepList.map( (parent:any) => {let item = deepList.filter( (child:any) => parent[id] == child[fid]);if (item.length > 0) {parent[children] = item;filterArr = [...filterArr, ...item];}return parent;});const result:any = Method.ArrayTree(tree, filterArr, id)return result;}}
调用
import { Method } from '@/utils';const result = Method.ArrTree(list, 'gzbh', 'fgzbh')
即可
