【发布时间】:2019-03-04 14:20:26
【问题描述】:
我刚刚找到了一个名为“stringify”的函数,它看起来是一种将平面数据转换为 Json 样式的好方法。
如果这是真的,它将节省我在 ASP/SQL 中进行递归编程的时间。
我的代码在这里:Original code
我正在尝试用数据创建相同的效果,我在这里已经解决了,你可以运行它,它会给出相同的结构。
<script>
var data = [
{ "name" : "A", "parent":"null" },
{ "name" : "J", "parent":"A"},
{ "name" : "I", "parent":"A" },
{ "name" : "G", "parent":"A" },
{ "name" : "H", "parent":"A" },
{ "name" : "Cr", "parent":"B" },
{ "name" : "D", "parent":"Cr" },
{ "name" : "E", "parent":"Cr" },
{ "name" : "H", "parent":"A" },
{ "name" : "F", "parent":"Cr"},
{ "name" : "B", "parent":"A" }
];
// create a name: node map
var dataMap = data.reduce(function(map, node) {
map[node.name] = node;
return map;
}, {});
// create the tree
var tree = [];
data.forEach(function(node) {
// add to parent
var parent = dataMap[node.parent];
if (parent) {
// create child
(parent.children || (parent.children = []))
// add node
.push(node);
} else {
// null or missing
tree.push(node);
}
});
d3.select('body').append('pre').text(JSON.stringify(tree, null, ' '));
我现在在将两者整合在一起时遇到问题?!
这可能是一件很容易的事——但是在喝了很多咖啡之后,我盯着并重写了这个。
任何人有任何提示?非常感谢并感谢您阅读本文 - 我不介意你们中的任何一位 GURU 修改或重新创建我已经拥有的代码。
【问题讨论】:
标签: javascript json d3.js stringify