作家
登录

使用递归遍历并转换树形数据(以TypeScript为例)

作者: 来源: 2017-11-02 16:13:20 阅读 我要评论


一个同伙问我应当怎么年腋荷琐树的 JSON 数组生成 HTML,应用 <ul> 和 <li> 来构建页面元素。于是我简单的画了个树型构造图

然后写了对应的模仿数据(JavaScript 对象)

深度遍历

  1. const data = { 
  2.     name"A"
  3.     nodes: [ 
  4.         { name"B", nodes: [{ name"F" }] }, 
  5.         { name"C" }, 
  6.         { 
  7.             name"D"
  8.             nodes: [ 
  9.                 { name"G" }, 
  10.                 { name"H" }, 
  11.                 { name"I", nodes: [{ name"J" }, { name"K" }] } 
  12.             ] 
  13.         }, 
  14.         { name"E" } 
  15.     ] 
  16. };  

最后写了一个递归,生成了 HTML 的树型构造。本来是用 JavaScript ES6 写的,为了注解数据构造,这里改用 TypeScript 来写:

  1. interface INode { 
  2.     name: string; 
  3.     nodes?: INode[]; 
  4.  
  5. function makeTree(roots: INode[]): JQuery<HTMLElement> { 
  6.     function makeNode(node: INode): JQuery<HTMLElement> { 
  7.         const $div = $("<div>").text(node.name || ""); 
  8.         const $li = $("<li>").append($div); 
  9.         if (node.nodes && node.nodes.length) { 
  10.             $li.append(makeNodeList(node.nodes)); 
  11.         } 
     1/5    1 2 3 4 5 下一页 尾页

      推荐阅读

      让我们一起来消灭CSRF跨站请求伪造(上)

    导致HTTP verb应用欠妥的重要原因在于浏览器对HTTP标准的支撑存在缺点,这是一种汗青遗留问题。在XML HTTP Request(XHR)风行起来之前,我们几乎得依附特定框架和代码库来应用HTTP verb(除了GET和POST之>>>详细阅读


    本文标题:使用递归遍历并转换树形数据(以TypeScript为例)

    地址:http://www.17bianji.com/lsqh/38416.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)