1 | let arr = [ |
方法一、递归
1 | const transformTree = (data, pid, result) => { |
方法二、使用额外空间存储:牺牲空间换时间
主要思路是先把数据转成Map去存储,之后遍历的同时借助对象的引用,直接从Map找对应的数据做存储
1 | const array2Tree2 = function (data) { |
方法三、方法二改进版:一次遍历
主要思路也是先把数据转成Map去存储,之后遍历的同时借助对象的引用,直接从Map找对应的数据做存储。不同点在遍历的时候即做Map存储,有找对应关系。性能会更好。
1 | const array2Tree3 = function (data) { |
方法四:使用Map
1 | const array2Tree4 = function (data) { |