开发者问题收集

D3.js:连接 json 和 csv 不起作用

2015-10-06
171

我想创建一个地图,其中静态地图位于 json 文件中,动态数据位于 csv 文件中。地图显示,但 cvs 文件中的动态数据不起作用。我尝试遵循 mbostock 的解释,但到目前为止我无法使连接工作。这是代码:

d3.json("/sites/default/d3_files/json/toronto-wards.json", function(error,wards) {
   var csvData;
d3.csv("/csv-pledges", function(error, csv) 
{
    csvData = csv;

   alert ("Hello" +csvData); // this displays

joinJsonCsv(csvData);
   alert ("Bye"); // doesn't display 
}); // end d3.csv

function joinJsonCsv(csv) {
// do something with rows
  alert ("joinJsonCsv" +csv); // this displays
   csv.forEach(function(d, i) {
     alert("the value of e.SCODE_NAME is: "+e.SCODE_NAME); // doesn't display
        world.forEach(function(e, j) {
            if (d.ward_no === e.SCODE_NAME) 
            {  
                e.NAME = d.ward_no
            } // end ward test
        }) // end world loop loop
    })// end of csv loop
alert ("exit joinJsonCsv"); // this doesn't display
} // end joinJsonCsv

我遗漏了什么?

1个回答

您在其范围之外引用了 e 对象,因此该函数崩溃了。我移动了警报,以便定义 e ,它现在应该可以正常工作了。 d3.json("/sites/default/d3_files/json/toronto-wards.json", function(error,wards) { var csvData; d3.csv("/csv-pledges", function(error, csv) { csvData = csv;

   alert ("Hello" +csvData); // this displays

joinJsonCsv(csvData);
   alert ("Bye"); // doesn't display 
}); // end d3.csv

function joinJsonCsv(csv) {
// do something with rows
  alert ("joinJsonCsv" +csv); // this displays
   csv.forEach(function(d, i) {
        world.forEach(function(e, j) {
            alert("the value of e.SCODE_NAME is: "+e.SCODE_NAME); // try this maybe
            if (d.ward_no === e.SCODE_NAME) 
            {  
                e.NAME = d.ward_no
            } // end ward test
        }) // end world loop loop
    })// end of csv loop
alert ("exit joinJsonCsv"); // this doesn't display
} // end joinJsonCsv
Cool Blue
2015-10-06