美文网首页
将一个扁平数组转换成树状结构

将一个扁平数组转换成树状结构

作者: zy_Judy | 来源:发表于2020-06-15 15:48 被阅读0次
    function toChildrenStruct(pidArray, expandLevel) {
        // 将pid结构的树型数据转换成children结构
        const childrenArray = []
        const expandedItems = []
        const itemMap = {}
        if (!pidArray) {
          return childrenArray
        } else {
          for (const item of pidArray) {
            item.key = item.id
            item.value = item.id
            item.label = item.name
            itemMap[item.id] = item
          }
          for (const item of pidArray) {
            const parent = itemMap[item.parentId]
            if (typeof parent === 'undefined') {
              // pid不存在,是顶级元素
              childrenArray.push(item)
            } else {
              if (typeof parent.children === 'undefined') {
                parent.children = []
                if (expandLevel === -1) expandedItems.push(parent.id)
              }
              parent.children.push(item)
            }
          }
        }
        return childrenArray
      }
    

    相关文章

      网友评论

          本文标题:将一个扁平数组转换成树状结构

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