我们在工作候要对这样的数组进行处理,每个数组元素包括节点名称,父节点名称,如果该元素的父节点元素等于某个元素的节点名称,那么该元素在这个元素的下面。

    具体为:
    image.png

    这样的数组要做转化,直接上代码吧~

    位置:src/utils/Method

    1. class Method {
    2. /**
    3. * @module 树形数组
    4. *
    5. * @param arrList 数组集合
    6. * @param id 子id
    7. * @param fid 父id
    8. * @param children 将子id放入fid的名字,默认children
    9. */
    10. static ArrayTree = (allList: Array<any>, id: string, fid: string, children:string = 'children') => {
    11. let deepList = JSON.parse(JSON.stringify(allList));
    12. let filterArr:any = []
    13. const tree = deepList.map( (parent:any) => {
    14. let item = deepList.filter( (child:any) => parent[id] == child[fid]);
    15. if (item.length > 0) {
    16. parent[children] = item;
    17. filterArr = [...filterArr, ...item];
    18. }
    19. return parent;
    20. });
    21. const result:any = Method.ArrayTree(tree, filterArr, id)
    22. return result;
    23. }
    24. }

    调用

    1. import { Method } from '@/utils';
    2. const result = Method.ArrTree(list, 'gzbh', 'fgzbh')

    即可
    image.png