с использованием рекурсивного метода для преобразования формата JSON в подходящий для формата d3 график солнечных лучей - PullRequest
0 голосов
/ 30 октября 2019

Я пишу рекурсивную функцию для преобразования формата json в формат, подходящий для диаграммы солнечных лучей d3. Но это не создание json способом, в котором нуждаются солнечные лучи.

Я узнал, что с моим форматом json метод d3.stratify не будет работать, так как ему нужен один корневой узел. Поэтому я пытаюсь справиться с этим, используя рекурсивный метод.

Это код, который я пишу

var flare = createJSON(this.dataset);

function createJSON(original) {

    var sun = original.map(function(d) {
        return {
            name: d.name,
            id: d.id,
            value: d.value,
            parent_id: d.parent_id,
            logValue: d.logValue
        };
    });

    function getChildren(pid) {
        return sun.filter(function(d) { return d.id === pid; })
            .map(function(d) {
                return {
                    name: d.name,
                    id: d.id,
                    parent_id: d.parent_id,
                    value: d.value,
                    logValue: d.logValue,
                    children: getChildren(d.parent_id)
                };
        });
    }

    return original.map(d=> getChildren(d.parent_id))
}
console.log(flare)

Это мой JSON https://jsfiddle.net/6djrp2o7/, и мне нужен JSON в этом формате https://jsfiddle.net/49n1jmL5/. Может кто-нибудь из васпожалуйста, проверьте мой рекурсивный метод и дайте мне знать, где я делаю ошибку?

...