js中树形结构和数组结构的互转

var pub = {
        treeTransArray: function(tree, key) {
            return tree.reduce(
                function(con, item) {
                var callee = arguments.callee;
                con.push(item);
                if (item[key] && item[key].length >0)
                    item[key].reduce(callee, con);
                return con;
            }, []).map(function(item){
                    item[key] = [];
                    return item;
            })
        },
        arrayTransTree: function(list ,key) {
            var tree = list.filter(function(parent) {
                var branchArr = list.filter(function(child) {
                    return parent.id == child[key];
                });
                parent.nodes = [];
                if (branchArr.length > 0) {
                    parent.nodes = branchArr;
                }
                return parent[key] == "";
            });
            return tree;
        }
};
var arr = pub.treeTransArray(checkedData,'children'); //输出转换后数组
console.log(arr);
var _tree = pub.arrayTransTree(arr,'pid');//输出转换后树
console.log(_tree);

你可能感兴趣的:(java研究)