如何使用js构建树形结构数据与拆分树形结构
  ItOSoVx3qwX7 2023年11月24日 34 0

构建树形结构方法一

function builderData(data, parentId) {
  let mapData = new Map();
  mapData.set(parentId, {});
  data.forEach(item => {
    mapData.set(item.id, item);
  });
  mapData.forEach((value, key) => {
    let pId = value.parentId;
    if (key != parentId) {
      mapData.get(pId).children = mapData.get(pId).children || [];
      mapData.get(pId).children.push(value);
    }else{
      mapData.get(key).children = []
    }
  });
  return mapData.get(parentId).children
}

构建树形结构方法二

function builderData(data, parentId) {
  let arr = [];
  data.forEach(item => {
    if(item.parentId == parentId){
      let children = builderData(data, item.id);
      item.children = children
      arr.push(item)
    }
  })
  return arr
}

拆分树形结构

function separateData(data) {
  let arr = [];
  data.forEach(item=>{
    if(item.children.length > 0){
      arr = arr.concat(builderData(item.children))
      arr.push(item)
    }else{
      arr.push(item)
    }
  })
  return arr
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月24日 0

暂无评论

ItOSoVx3qwX7