【递归】树型JSON数据转换问题

原创 老姚 随笔 递归,俺跟你拼了 1548阅读 2017-05-11 09:01:45 举报

本文将稍微提升点难度
一般树的插件(比如ztree),初始化时都支持是两种JSON数据结构。
1.标准结构
javascript 代码

2.简单结构
javascript 代码

标准结构本身就是树形结构,简单结构是数组的形式,这里不关心那种结构更好。

问题是:
某些树形插件值支持一种结构,而后台的接口也可能只实现了另外一种形式。
那么就需要考虑这两种结构该如何相互转化?
此问题一看,就知道需要使用递归。
1.标准结构=>简单结构
javascript 代码

2.简单结构=>标准结构
javascript 代码

上述递归中都有数据的传递,这是一种accumulator技术。比如第一个函数中的array和第二个函数中data,递归过程中始终是同一个数据。
上述递归算法尚有优化的空间,尤其第二个。写得过程中,很容易绕晕。最好读者自己重新实现一遍。

本文完。

《递归系列目录》

看到此处我们该想到,陆游诗人对前端界做出的最大贡献:
纸上得来终觉浅,绝知此事要躬行。

评论 ( 3 )
最新评论
lxlxlxlx 2017-05-13 15:25:56 3F

学习中。。

pangmr 2017-05-12 09:44:11 2F

刚需啊 感谢博主

三余无梦生 2017-05-12 08:43:49 1F

学习了 虽然还不是很懂