数组转化树函数

Posted yscec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组转化树函数相关的知识,希望对你有一定的参考价值。

//数组转化为树
         function   arraytotree(arr) {
                var top = [], sub = [], tempObj = {};

                arr.forEach(function (item) {
                    if (item.parentId === 0) { // 顶级分类
                        top.push(item)
                    } else {
                        sub.push(item) // 其他分类
                    }
                    item.children = []; // 默然添加children属性
                    tempObj[item.id] = item // 用当前分类的id做key,存储在tempObj中
                })

                sub.forEach(function (item) {
                    // 取父级
                    var parent = tempObj[item.parentId] || {‘children‘: []}
                    // 把当前分类加入到父级的children中
                    parent.children.push(item)
                })

                return top
            },

以上是关于数组转化树函数的主要内容,如果未能解决你的问题,请参考以下文章

p43 将有序数组转化为二分搜索树 (leetcode 108)

Leetcode 108.将有序数组转化为二叉搜索树

web代码片段

LeetCode 109——有序链表转化二叉搜索树

LeetCode--108--将有序数组转化为二叉搜索树

LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段