Javascript jQuery并行d3对象

Javascript jQuery并行d3对象,javascript,jquery,ajax,d3.js,Javascript,Jquery,Ajax,D3.js,关于对这一问题的答复: 我们可以做类似的事情,让d3物体在体内吗 问题的例子 var done = 4; // number of total requests var sum = 0; /* Normal loops don't create a new scope */ $([1,2,3,4,5]).each(function() { var number = this; $.getJSON("/values/" + number, function(data) { su

关于对这一问题的答复:

我们可以做类似的事情,让d3物体在体内吗

问题的例子

var done = 4; // number of total requests
var sum = 0;

/* Normal loops don't create a new scope */
$([1,2,3,4,5]).each(function() {
  var number = this;
  $.getJSON("/values/" + number, function(data) {
    sum += data.value;
    done -= 1;
    if(done == 0) $("#mynode").html(sum);
  });
});

正如评论中提到的,
d3.json
的工作原理与
$.getJSON
大致相同,因此可以采用相同的方法。然而,与D3相同的作者有一个库,它为您形式化了过程,并使结果更易于处理

以下是来自以下方面的示例:


我还应该提到,d3并不关心数据是如何到达的,因此,如果您已经计划在页面中与d3一起使用jQuery,那么通过d3自己的方法获取数据并没有任何实际好处。d3内置d3.json之类的东西的主要好处是,如果您不需要它,您可以避免加载类似jQuery的东西。

您应该能够简单地将
$.getJSON
替换为
d3.json
,如果这是您想要的。谢谢,我将阅读并更新此内容!
queue()
    .defer(d3.json, "us-states.json")
    .defer(d3.tsv, "us-state-populations.tsv")
    .await(ready);

function ready(error, states, statePopulations) {
  // display map here
}