3

是否有任何树视图组件支持显示任意 JavaScript 对象,例如:

{
   foo: 'bar'
   zee: [1, 2, 3]
}

这导致以下视图:

/----foo 
  |   |
  |   |-- 'bar'
  |
  |--zee
      |
      |--
        |--1
        |--2
        |--3

注意上面的ascii树只是为了演示树结构,不一定是最终结果。

4

4 回答 4

2

const Tree=(o,m=o,v='')=>{
    for(e in o){
        if(typeof o!=='object'){console.log(v+'┗╸'+o);return}
        Array.isArray(o)?!Array.isArray(o[e])?console.log(v+(o.length===1||o[e]===o[o.length-1]?'┗╸':'┣╸')+o[e]):Tree(o[e],m,v+(o.length===1||o[e]===o[o.length-1]?' '.repeat(o[e].toString.length+1):'┃'+' '.repeat(e.length))):(console.log(v+(e===Object.keys(m)[0]?'┏╸':Object.keys(o).length===1||Object.keys(o)[Object.keys(o).length-1]===e?'┗╸':'┣╸')+e),Tree(typeof o[e]!=='object'?String(o[e]):o[e],m,v+(Object.keys(o).length===1||Object.keys(o)[Object.keys(o).length-1]===e?' '.repeat(e.length+1):'┃'+' '.repeat(e.length))))
    }
}
//Usage : Tree(YourObjHere)

//Example :
  Tree({
     foo: 'bar',
     zee: [1, 2, 3]
  }) 

//Let me know if bugs

于 2020-10-05T06:44:44.517 回答
0

目前尚不清楚您的确切需求,但这可能很适合您:http: //www.jstree.com/documentation/json_data

于 2012-06-28T04:48:38.550 回答
0

一个非常好的树视图组件包,可以完全按照您在以下链接中的要求创建树结构。所以访问https://www.npmjs.com/package/treeify

于 2019-02-05T11:11:59.807 回答
0

我找到了一个小型库,可以像你想要的那样显示 JSON。JSON 几乎是一个 Javascript 对象,因此它应该可以满足您的需要(为我工作)。

https://github.com/lmenezes/json-tree

于 2017-07-24T19:39:01.167 回答