欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > js 通过filter 实现扁平化数据tree

js 通过filter 实现扁平化数据tree

2025/5/1 22:39:12 来源:https://blog.csdn.net/m0_65730686/article/details/143377270  浏览:    关键词:js 通过filter 实现扁平化数据tree

 

第二种:

let data= [
    {
        "id": 100,
        "parentId": 0,
        "isLeaf": "0",
        "level": 1,
        "code": "taskAnalyse",
        "name": "数据机构",
        "canEdit": "0"
    },
    {
        "id": 101,
        "parentId": 100,
        "isLeaf": "1",
        "level": 2,
        "code": "module",
        "name": "数据机构2",
        "canEdit": "1"
    },
    {
        "id": 102,
        "parentId": 100,
        "isLeaf": "1",
        "level": 2,
        "code": "task",
        "name": "数据机构3",
        "canEdit": "1"
    },
    {
        "id": 103,
        "parentId": 100,
        "isLeaf": "1",
        "level": 2,
        "code": "fid",
        "name": "1.3 确定典型任务",
        "canEdit": "1"
    },
    {
        "id": 200,
        "parentId": 0,
        "isLeaf": "0",
        "level": 1,
        "code": "competencyAnalyse",
        "name": "二绘制能力图谱",
        "canEdit": "0"
    },
    {
        "id": 201,
        "parentId": 200,
        "isLeaf": "1",
        "level": 2,
        "code": "knowledge",
        "name": "2绘制知识图谱",
        "canEdit": "1"
    },

    {
        "id": 205,
        "parentId": 203,
        "isLeaf": "1",
        "level": 3,
        "code": "qualityLevel",
        "name": "数据机构11111",
        "canEdit": "1"
    },
    {
        "id": 206,
        "parentId": 203,
        "isLeaf": "1",
        "level": 3,
        "code": "qualityType",
        "name": "数据机构111111",
        "canEdit": "1"
    }
]

let _index = 0;

            for (let i = 0; i < arr.length - 1; i++) {

              //初始化类为small-title

              arr[i].className = "small-title"

              if(i>0){

                //当前arr[i].canEdit === '0' 下一组为arr[i + 1].canEdit === '1',设置当前arr[i].canEdit = '1'

                if (arr[i].canEdit === '0' && arr[i + 1].canEdit === '1') {

                  arr[i].canEdit = '1';

                 

                }

              }

              //获取最后canEdit == 1的

              if(arr[i].canEdit === '1'){

                _index = i;

              }

            }

            // canEdit == 1初始化最后一个为选中状态

            arr[_index].className = "bg-title";

始化最后一个为选中状态

            arr[_index].className = "bg-title";

function buildTree (data, parentId = 0) {

  return data.filter(item => item.parentId === parentId).map(item => ({

    ...item,

    childrenMenuList: buildTree(data, item.id)

  }));

}

 this.flowList = buildTree(data);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com