zoukankan      html  css  js  c++  java
  • 用递归处理数据

    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
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]*/
  • 相关阅读:
    CSS的z-index(分层)
    CSS的position(位置)
    HTML-答案检查&按钮倒计时
    HTML-字体逐渐显示
    2012 VS密钥
    游戏的轻度、中度、重度是什么意思
    PHP Date()函数详细参数
    服务器被黑之后的处理经历
    SEO
    ps切图步骤
  • 原文地址:https://www.cnblogs.com/yghgo/p/8425701.html
Copyright © 2011-2022 走看看