小编ide*_*eps的帖子

遍历对象数组以生成d3 Sankey Chart数据

此输入(tree-like结构)必须格式化为特定格式才能绘制d3 sankey diagram chart.

let unformattedJson = [
  {
    "key": "a1",
    "value": 30,
    "buckets": [
      {
        "key": "a2",
        "value": 10 
      },
      {
        "key": "b2",
        "value": 20 
      }
    ]
  },
  {
    "key": "b1",
    "value": 70,
    "buckets": [
      {
        "key": "b2",
        "value": 40 
      },
      {
        "key": "c2",
        "value": 30 
      }
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

我需要生成的预期输出是:

{
  "nodes": [
    {"nodeId":0,"name":"a1"},
    {"nodeId":1,"name":"a2"},
    {"nodeId":2,"name":"b2"},
    {"nodeId":3,"name":"b1"},
    {"nodeId":4,"name":"c2"}
  ],
  "links": [
    {"source":0,"target":1,"value":10},
    {"source":0,"target":2,"value":20},
    {"source":3,"target":2,"value":40},
    {"source":3,"target":4,"value":30}
  ]
}
Run Code Online (Sandbox Code Playgroud)

我的解决方案.我做了两个函数来计算节点和链接.对于节点,我做了一个递归函数来获取所有唯一键并id为每个键分配一个.我创建了另一个函数来获取键之间的所有关系.

let makeNodeObj = function(orObj, …
Run Code Online (Sandbox Code Playgroud)

javascript arrays tree tree-traversal d3.js

5
推荐指数
1
解决办法
151
查看次数

标签 统计

arrays ×1

d3.js ×1

javascript ×1

tree ×1

tree-traversal ×1