Javascript D3:无法获取属性';重量';指未定义的或空的引用

Javascript D3:无法获取属性';重量';指未定义的或空的引用,javascript,angularjs,d3.js,svg,Javascript,Angularjs,D3.js,Svg,当我将link.source和link.target分配给从DB检索到的整数值时,D3 svg图形停止工作。如果我分配从0开始的索引,那么graph可以正常工作,但是当我使用从db检索的标识符值分配link.source和.target时,它会失败,出现上述错误。我想我们需要一个here。真的吗?这不应该是一个答案,是吗?虽然这个代码片段可以解决这个问题,但确实有助于提高您的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。 var edges = []; json

当我将link.source和link.target分配给从DB检索到的整数值时,D3 svg图形停止工作。如果我分配从0开始的索引,那么graph可以正常工作,但是当我使用从db检索的标识符值分配link.source和.target时,它会失败,出现上述错误。

我想我们需要一个here。真的吗?这不应该是一个答案,是吗?虽然这个代码片段可以解决这个问题,但确实有助于提高您的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。
var edges = [];
json.Links.forEach(function(e) {
  var sourceNode = json.Nodes.filter(function(n) {
        return n.Id === e.Source;
      })[0],
      targetNode = json.Nodes.filter(function(n) {
        return n.Id === e.Target;
      })[0];

  edges.push({
    source: sourceNode,
    target: targetNode,
    value: e.Value
  });
});

force
  .nodes(json.Nodes)
  .links(edges)
  .start();

var link = svg.selectAll(".link")
   .data(edges)