element-ui树形控件后台返回的数据+生成组织树的工具类

yizhihongxing

生成树形组织结构需要以下两个步骤:

  1. 后台返回的数据必须是一个符合规范的JSON格式的树形结构。

例如,以下是符合规范的树形JSON数据结构示例:

[
  {
    "id": 1,
    "name": "Node1",
    "children": [
      {
        "id": 2,
        "name": "Node2"
      },
      {
        "id": 3,
        "name": "Node3"
      }
    ]
  },
  {
    "id": 4,
    "name": "Node4",
    "children": [
      {
        "id": 5,
        "name": "Node5"
      }
    ]
  }
]
  1. 使用工具类将数据转换为树形结构。

以下是一个生成树形结构的示例代码:

function buildTree(list) {
  let map = {}, node;
  for(let i = 0; i < list.length; i++) {
    node = list[i];
    node.children= [];
    map[node.id] = node;
    if(node.parentId) {
      if(!map[node.parentId].children) {
        map[node.parentId].children= [];
      }
      map[node.parentId].children.push(node);
    }
  }
  return map[0].children;
}

以上代码中的list是后台返回的数据,idparentId是节点ID和父级节点ID。

示例1:

后台返回的数据结构为:

[
  {
    "id": 1,
    "name": "Node1",
    "pid": 0
  },
  {
    "id": 2,
    "name": "Node2",
    "pid": 1
  },
  {
    "id": 3,
    "name": "Node3",
    "pid": 1
  },
  {
    "id": 4,
    "name": "Node4",
    "pid": 2
  },
  {
    "id": 5,
    "name": "Node5",
    "pid": 2
  }
]

我们可以使用以下代码将上述数据转换为树形结构:

let data = [
  {id: 1, name: 'Node1', pid: 0},
  {id: 2, name: 'Node2', pid: 1},
  {id: 3, name: 'Node3', pid: 1},
  {id: 4, name: 'Node4', pid: 2},
  {id: 5, name: 'Node5', pid: 2},
]

let result = buildTree(data);
console.log(result);

示例2:

后台返回的数据结构为:

[
  {
    "Id": 1,
    "Name": "Node1",
    "ParentId": null
  },
  {
    "Id": 2,
    "Name": "Node2",
    "ParentId": 1
  },
  {
    "Id": 3,
    "Name": "Node3",
    "ParentId": 1
  },
  {
    "Id": 4,
    "Name": "Node4",
    "ParentId": 2
  },
  {
    "Id": 5,
    "Name": "Node5",
    "ParentId": 2
  }
]

使用以下代码将上述数据转换成树形数据结构:

let data = [
  {Id: 1, Name: 'Node1', ParentId: null},
  {Id: 2, Name: 'Node2', ParentId: 1},
  {Id: 3, Name: 'Node3', ParentId: 1},
  {Id: 4, Name: 'Node4', ParentId: 2},
  {Id: 5, Name: 'Node5', ParentId: 2},
]

let result = buildTree(data.map(node => {
  return {
    id: node.Id,
    name: node.Name,
    parentId: node.ParentId
  }
}));

console.log(result);

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:element-ui树形控件后台返回的数据+生成组织树的工具类 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript中的异常处理

    JavaScript中的异常处理涉及到一些常用的语句和方法,包括try…catch语句、throw语句、Error对象等。它的作用是在运行过程中捕获和处理一些未预料到的错误或异常,防止程序因此崩溃。下面就对JavaScript中的异常处理进行详细讲解。 异常及其分类 在JavaScript中,异常指的是在程序执行过程中发生的错误或意外情况。常见的异常类型…

    JavaScript 2023年5月27日
    00
  • 新手快速学习JavaScript免费教程资源汇总

    新手快速学习JavaScript免费教程资源汇总 背景介绍 JavaScript 是一种常用的编程语言,具有广泛的应用领域。如果您是一个 JavaScript 初学者,可以通过参考多种免费的教程资源来快速掌握这门语言。在本文中,我们将分享一些值得推荐的免费 JavaScript 学习资源,帮助您在学习的过程中少走弯路。 步骤 下面是一个 JavaScript…

    JavaScript 2023年5月27日
    00
  • Python Selenium操作Cookie的实例方法

    下面是详细讲解“Python Selenium操作Cookie的实例方法”的完整攻略: 什么是Cookie? 在网站上保存数据的一种机制,通常由服务器发送给用户的Web浏览器,并存储在本地机器上。当浏览器再次尝试连接到相同的服务器时,将发送之前存储的Cookie。 Selenium操作Cookie Selenium是一个支持Web驱动的自动化测试工具,包含一…

    JavaScript 2023年6月11日
    00
  • 非常酷炫的Bootstrap图片轮播动画

    下面是“非常酷炫的Bootstrap图片轮播动画”的完整攻略: 1.准备工作 在使用Bootstrap图片轮播动画之前,需要对代码进行一定的准备工作: 引入jQuery和Bootstrap的CSS和JS文件 <!– 引入jQuery –> <script src="https://code.jquery.com/jquery-…

    JavaScript 2023年6月11日
    00
  • document.getElementById的简写方式(获取id对象的简略写法)

    获取id对象是JavaScript常见的操作之一,而document.getElementById是获取id对象的常用方式。但是,在书写代码的过程中,为了方便,我们常常使用id对象的简略写法。 1. 通用的文档对象模型(DOM): 通常情况下,获取文档对象模型中的元素需要使用document.getElementById方法。该方法接受一个字符串参数,代表要…

    JavaScript 2023年6月10日
    00
  • 浅谈JS原型对象和原型链

    下面是详细的讲解“浅谈JS原型对象和原型链”的完整攻略。 什么是JS原型对象和原型链 在开始讲解JS原型对象和原型链之前,我们需要先理解一下构造函数和实例化的概念。在JS中,构造函数是指用来创建对象的函数,而实例化则是指创建对象的过程。比如下面的代码就定义了一个构造函数: function Person(name, age) { this.name = na…

    JavaScript 2023年5月27日
    00
  • Js 刷新框架页的代码

    要刷新网页的话可以使用JavaScript的location.reload()函数。该函数会重新加载当前网页,现在我们来分步骤说明如何实现这个功能: 步骤一:创建按钮 首先,在HTML中创建一个按钮(或其他适合的元素)。 <button onClick="refreshPage()">刷新页面</button> 步…

    JavaScript 2023年6月11日
    00
  • 28个JS常用数组方法总结

    28个JS常用数组方法总结 本文将介绍28个JS常用数组方法,包括简单的遍历方法和高级的数组变换方法。这些方法可以用来操作数组,从而更好的解决开发中出现的问题。 1. forEach forEach用于遍历数组并对数组中的每个元素执行指定操作。操作通过传递一个回调函数实现。回调函数接受三个参数:数组中的当前元素、当前元素的索引和数组本身。 const arr…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部