我想创建一个 map ,其中静态 map 位于 json 文件中,动态数据位于 csv 文件中。 map 显示,但 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
我错过了什么?
最佳答案
您在其范围之外引用了 e
对象,因此该函数崩溃了。我移动了警报,以便定义 e
,它现在应该可以工作了。
d3.json(“/sites/default/d3_files/json/toronto-wards.json”,函数(错误,wards){
var csvData;
d3.csv(“/csv-pledges”,函数(错误,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
关于javascript - D3.js:连接 json 和 csv 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32974834/