前端js將扁平化數據轉化爲=菜單樹

    let menuList = [
      {
        id: 1,
        pid: -1,
        name: '江西'
      },
      {
        id: 2,
        pid: 1,
        name: '南昌'
      },
      {
        id: 3,
        pid: 1,
        name: '九江'
      },
      {
        id: 4,
        pid: -1,
        name: '廣東'
      },
      {
        id: 5,
        pid: 4,
        name: '深圳'
      },
      {
        id: 6,
        pid: 5,
        name: '南山'
      }
    ]


    function getMenuList(list) {
      let menu = []
      let map = {}
      list.forEach(item => {
        item.children = []
        map[item.id] = item
        if (item.pid === -1) {
          menu.push(item)
        } else {
          map[item.pid] && map[item.pid].children.push(item)
        }
      })
      return menu
    }

    let data = getMenuList(menuList)

 

利用了 對象在內存中的保存方式是 指針引用,實現了簡單的生成菜單樹的算法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章