二维数组与 JsTree 兼容 JSON

2D Array to JsTree compatible JSON

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

        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"])

我希望有人可以帮助我格式化它,以便它 returns 将对象转换为在这里找到的 JSTree 兼容对象:https://www.jstree.com/docs/json/

对于数组 ["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"]);

顺便说一句:如果您使用 BootStrap,请考虑 jonmiles tree