Я пишу рекурсивную функцию для преобразования формата 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/. Может кто-нибудь из васпожалуйста, проверьте мой рекурсивный метод и дайте мне знать, где я делаю ошибку?