Создайте дерево JSON из материализованных путей

Я планирую использовать материализованные пути в MongoDB для представления дерева, и мне нужно преобразовать материализованные пути обратно в дерево JSON.

ех. // Материализованный путь

var input = [
    {"id": "0", "path": "javascript" },
    {"id": "1", "path": "javascript/database" },
    {"id": "2", "path": "javascript/database/tree" },
    {"id": "3", "path": "javascript/mvc" },
    {"id": "4", "path": "javascript/mvc/knockout.js"},
    {"id": "5", "path": "javascript/mvc/backbone.js"},
    {"id": "6", "path": "c++" },
    {"id": "7", "path": "c++/c0xx"},
    {"id": "8", "path": "c++/c0xx/lambda expressions"},
    {"id": "9", "path": "c++/c0xx/vc10" }
];

Результат будет:

[
    {
        "id": "0",
        "name": "javascript",
        "children": [
            {
                "id": "1",
                "name": "database",
                "children": [
                    {
                        "id": "2",
                        "name": "tree",
                        "children": []
                    }
                ]
            },
            {
                "id": "3",
                "name": "mvc",
                "children": [
                    {
                        "id": "4",
                        "name": "knockout.js",
                        "children": []
                    },
                    {
                        "id": "5",
                        "name": "backbone.js",
                        "children": []
                    }
                ]
            }
        ]
    },
    {
        "id": "6",
        "name": "c++",
        "children": [
            {
                "id": "7",
                "name": "c0xx",
                "children": [
                    {
                        "id": "8",
                        "name": "lambda expressions",
                        "children": []
                    },
                    {
                        "id": "9",
                        "name": "vc10",
                        "children": []
                    }
                ]
            }
        ]
    }
]

я нашелПреобразование строки с разделителями в иерархический JSON с JQuery который отлично работает

И я также нашелПостроить дерево из материализованного пути который написан на Ruby и использует рекурсию. Мне интересно и любопытно увидеть, как это реализовано в Javascript, и интересно, есть ли люди, свободно владеющие как Ruby, так и Javascript, которые хотели бы переписать его. Я попробовал конвертер Ruby в JS, но результат был непостижимым.

Спасибо Невилл

Ответы на вопрос(1)

Ваш ответ на вопрос