美文网首页
js 数组变成树结构

js 数组变成树结构

作者: _theFeng | 来源:发表于2019-10-23 17:46 被阅读0次
    const obj = {}
    let arr = [
         {
        id: 20, // id
        // pid: 5 // 父级id
      },
      {
        id: 10, // id
        pid: 5 // 父级id
      },
      {
        id: 1,
        pid: 2
      },
      {
        id: 3,
        pid: 4
      },
      {
        id: 2,
        pid: 3
      },
      {
        id: 100,
        pid: 5
      },
      {
        id: 10099,
        pid: 6
      },
      {
        id: 1000,
        pid: 100
      }
    ]
    
    arr.forEach((i, index) => {
        i.index = index
        obj[i.id] = i
    })
    
    arr.forEach((i, index) => {
        if (i.pid) {
            if (obj[i.pid]) {
                let pitem = arr[obj[i.pid].index]
                if (!pitem.c) pitem.c = []
                pitem.c.push(i)
                i.r = true
            }
        }
    })
    
    let newarr = arr.filter(i => !i.r)
    
    console.log(newarr)
    
    

    相关文章

      网友评论

          本文标题:js 数组变成树结构

          本文链接:https://www.haomeiwen.com/subject/ewgkvctx.html