我正在使用d3.js强制布局,但存在以下问题:
TypeError:c.target是未定义的,我知道这是什么,以及如何删除它,但是我不想要

 d3.json("myfile.json", function(graph) {

   var nodeMap = {};
   graph.nodes.forEach(function(d) { nodeMap[d.name] = d; });
   graph.links = graph.links.map(function(d) {
     return {
         source: nodeMap[d.source] ,
         target: nodeMap[d.target] ,
         value: d.value
          };
  });

force
  .nodes(graph.nodes)
  .links(graph.links)
  .on("tick", tick)
  .start();


这是我的代码,用于加载json数据并构建图形。

if i put ( || 0  )in  :

                      source: nodeMap[d.source] || 0,
                      target: nodeMap[d.target] ||0,


这会破坏代码,并且不会为“ d”节点绘制链接。
    相反,我想要类似“ continue statement”的语句,该语句跳转到同一“ d”节点的下一个c.target。

有人能帮我吗

最佳答案

您可以过滤掉引用不存在的节点的链接:

graph.links = graph.links.filter(function(d) {
    return nodeMap[d.source] && nodeMap[d.target];
}).map(function(d) {
    return {
      source: nodeMap[d.source] ,
      target: nodeMap[d.target]
    };
});

关于javascript - d3.js继续条件加载数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20472348/

10-15 05:59