js中把jsonArray遞歸的方法轉(zhuǎn)成樹形的json對象

一個數(shù)組

var nodes = [
    {"id":0,"title":"第一級1","parentid":0},
    {"id":1,"title":"第二級1","parentid":2},
    {"id":2,"title":"第二級2","parentid":2},
    {"id":3,"title":"第三級1","parentid":4},
    {"id":4,"title":"第三級2","parentid":3}
];

轉(zhuǎn)成的樹結(jié)構(gòu)

var treeData = {
    "id": "2",
    "title": "第一級1",
    "children": [
        {
            "id": "3",
            "title": "第二級1",
            "children": [
                {
                    "id": "6",
                    "title": "第三級2",
                    "children": [
                        
                    ]
                }
            ]
        },
        {
            "id": "4",
            "title": "第二級2",
            "children": [
                {
                    "id": "5",
                    "title": "第三級1",
                    "children": [
                        
                    ]
                }
            ]
        }
    ]
}

代碼如下:

  var nodes = [
      { "id": 2, "title": "第一級1", "parentId": 0 },
      { "id": 3, "title": "第二級1", "parentId": 2 },
      { "id": 4, "title": "第二級2", "parentId": 2 },
      { "id": 5, "title": "第三級1", "parentId": 4 },
      { "id": 6, "title": "第三級2", "parentId": 3 }
    ];
    function convertToTreeData(data, pid) {
      const result = [];
      let temp = [];
      for (let i = 0; i < data.length; i++) {
        if (data[i].parentId === pid) {
          const obj = { 'title': data[i].title, 'id': data[i].id }
          temp = convertToTreeData(data, data[i].id)
          if (temp.length > 0) {
            obj.children = temp
          }
          result.push(obj)
        }
      }
      return result;
    }
    const treeData = convertToTreeData(nodes, 0);
    console.log(treeData);

參數(shù)說明請參考原文,地址如下:《原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容