2D阵列到JsTree兼容的JSON

时间:2015-10-01 18:21:39

标签: javascript arrays json jstree

我目前有一个javascript函数,它接受1维数组并将它们添加到树对象中。

        var tree = {}

        function addToTree(tree, arr) { 
            for (var i = 0, length = arr.length; i < length - 1; i++) {
                tree = tree[arr[i]] = tree[arr[i]] || {};
            } 
            tree[arr[i]] = null;
        }

        addToTree(tree, ["a", "b", "c", "f"])
        addToTree(tree, ["a", "b", "d", "h", "l"])

我希望有人可以帮我格式化它,以便将对象返回到此处的JSTree兼容对象:https://www.jstree.com/docs/json/

1 个答案:

答案 0 :(得分:1)

对于数组["a", "b", "c", "f"]中的每个元素,首先需要创建一个节点(一个与JSTree兼容),然后将该节点添加到我们正在构建的json对象tree中。

function createTreeNode(value) { 
    return {'text': value};
}

现在函数addToTree可以是

var tree = {'core': {'data': []}};     //This initialization is needed

function addToTree(tree, arr) {
    for (var i = 0; i < arr.length; i++) {
        node = createTreeNode(arr[i]);
        tree.core.data.push(node);
    }
}

addToTree(tree, ["a", "b", "c", "f"]);
addToTree(tree, ["a", "b", "d", "h", "l"]);

BTW:如果您使用的是BootStrap,请考虑jonmiles tree