如何把扁平的数据,根据 level 嵌套。感觉

2017-11-29 12:04:25 +08:00
 liiihhhh

自己想了试了好久,应该是要用到递归的。

如果是嵌套的数据,我能拉平。但是反向,总感觉少考虑了什么。

数据类似如下

let data  = [
  {name:"1",level:1},
  {name:"1.1",level:2},
  {name:"1.1.1",level:3},
  {name:"2",level:1},
  {name:"2.1",level:2},
  {name:"3",level:1},
  {name:"3.1",level:2},
  {name:"3.1.1",level:3},
  {name:"3.2",level:2},
  {name:"3.2.1",level:3},
  {name:"4",level:1},
]

大概像上面的数据

最后的"嵌套化"后的格式


[{  name:"1",
    level:1,
    children:[{
    	 name:"1.1",
         level:2,
         children:[
            	{name:"1.1.1",level:3}] 
        }]
}]

2537 次点击
所在节点    编程
1 条回复
sunjourney
2017-11-29 13:32:54 +08:00
这个 name 和 level 冗余了吧。用 reduce 处理下就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/410436

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX