У меня есть структура данных, которая выглядит следующим образом, и я хочу вложить ее в создание карты D3. Я могу вложить его, используя либо Underscore.nest
, либо D3.nest()
. Однако, поскольку мои данные имеют произвольную глубину, я получаю кучу неопределенных узлов. Как я могу вложить его на произвольную глубину или rollup
неопределенные узлы?D3 вложенные данные с произвольной глубиной
// Example Data
data = [
{'name' : 'Post 1', '0' : 'tag_a'},
{'name' : 'Post 2', '0' : 'tag_b'},
{'name' : 'Post 3', '0' : 'tag_b', '1' : 'tag_c'},
{'name' : 'Post 4', '0' : 'tag_d', '1' : 'tag_e', '2' : 'tag_f', '3' : 'tag_g'}
];
// Nesting with the Underscore nest plugin
var underscoreNested = _.nest(data, ['0', '1', '2', '3']);
{
"children": [
{
"name": "tag_a",
"children": [
{
"name": "undefined",
"children": [
{
"name": "undefined",
"children": [
{
"name": "undefined",
"children": [
{
"0": "tag_a",
"name": "Post 1"
}
],
"index": 0
}
],
"index": 0
}
],
"index": 0
}
],
"index": 0
}...
// Nesting with D3
var d3Nested = d3.nest()
.key(function(d) { return d['0']; })
.key(function(d) { return d['1']; })
.key(function(d) { return d['2']; })
.key(function(d) { return d['3']; })
.entries(data);
[
{
"key": "tag_a",
"values": [
{
"key": "undefined",
"values": [
{
"key": "undefined",
"values": [
{
"key": "undefined",
"values": [
{
"0": "tag_a",
"name": "Post 1"
}
]
}
]
}
]
}
]
},...