javascript - d3.js 继续条件加载数据

标签 javascript d3.js

我正在使用 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”节点的链接。 相反,我想要类似“继续语句”的内容,跳转到同一“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/

相关文章:

javascript - 对 Node 服务器的 Axios GET 请求永远不会返回登录用户,在浏览器中手动访问相同的路由会返回

javascript - 设置输入值后将列表拆分为多个小列表 - Jquery

css - 如何在没有非常高的 CPU 使用率的情况下为沿 SVG 路径的无限标记移动设置动画?

javascript - 根据数值数组的第一个值和最后一个值对数值数组进行排序

javascript - 如何禁用<select>标签,但同时绑定(bind)jquery click?

javascript - 强制选择特定的选项组合框

javascript - d3 动画树形图 CSV - 不可缩放

javascript - 使用 d3 - 单击按钮时如何从数组中选择特定数据以突出显示?

javascript - 将过滤的 JSON 链接映射到过滤 JSON 节点

javascript - Object.create 和继承