• 用递归处理数据


    var retrunArr = [];
        const arr = [
            ["项目库","餐饮","火锅"],
            ["项目库","餐饮","火大","火锅"],
            ["项目库1","餐饮","火大","火锅"],
            ["项目库1","餐饮","火大","火锅"],
            ["项目库2","餐饮","火大","火锅"],
        ];
    
        
        function di(pushArr, index, strArr) {
            let obj, exist = false;
            obj = {
                name: strArr[index],
                children: index == strArr.length - 1 ? null : []
            }
            pushArr.forEach((o) => {
                if (o.name === strArr[index]) {
                    obj = o;
                    exist = true;
                }
            });
            
            if (!exist) {
                pushArr.push(obj);
            }        
            
            if (index < strArr.length - 1 && obj.children !== null) {
                di(obj.children, index + 1, strArr);
            }
        }
    
        arr.forEach((o, i) => {
            di(retrunArr, 0, arr[i]);
        });
    
    
        console.dir(JSON.stringify(retrunArr));
        /*[
          {
            "name": "项目库",
            "children": [
              {
                "name": "餐饮",
                "children": [
                  {
                    "name": "火锅",
                    "children": null
                  },
                  {
                    "name": "火大",
                    "children": [
                      {
                        "name": "火锅",
                        "children": null
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "项目库1",
            "children": [
              {
                "name": "餐饮",
                "children": [
                  {
                    "name": "火大",
                    "children": [
                      {
                        "name": "火锅",
                        "children": null
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "项目库2",
            "children": [
              {
                "name": "餐饮",
                "children": [
                  {
                    "name": "火大",
                    "children": [
                      {
                        "name": "火锅",
                        "children": null
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]*/
  • 相关阅读:
    Spring set注入
    Spring 搭建
    MyBatis 动态Sql
    Mybatis 数据读取
    MyBatis 搭建
    第三十二章:Map集合
    第三十一章:集合输出
    第三十章:Set集合
    第二十八、九章:类集框架简介、List集合
    第25、26、27章:类加载器、反射与代理设计模式、反射与Annotation
  • 原文地址:https://www.cnblogs.com/yghgo/p/8425701.html
Copyright © 2020-2023  润新知