D3。从数组javascript

时间:2017-05-01 22:50:02

标签: javascript arrays csv url d3.js

我是新来的。我试图使用jaavascript制作一个简单的交互式图表。我的想法是,当我更改选择器中的值时,图表会更改数据正在使用。

但是,我在数据切换方面遇到了麻烦。数据来自不同的网址。这些网址是CSV文件。我的代码从CSV文件中提取URL并创建一个数组。然后它继续从数组的适当元素调用CSV文件。简化代码:

functionThatReturnsArray(){
d3.csv("http//URL.COM", function(){
SomeMoreCode;
return ArrayOfStrings
};)
}

A = functionThatReturnsArray();

MoreCode;

//For example, the first value from A is selected
d3.csv(A[0], function(error, data) {
MoreCode;
})

问题是它似乎不是d3.csv的有效输入,因为它不起作用。我不知道我是否遗漏了某些东西,或者不能这样做。

我搜索过,可能是因为d3.csv是一个异步方法,但我不确定这是不是问题。

任何建议都是apreciated

1 个答案:

答案 0 :(得分:0)

您的第一个CSV数据是异步加载的,因此此函数不会返回任何内容

functionThatReturnsArray(){
   d3.csv("http//URL.COM", function(){
       SomeMoreCode;
       return ArrayOfStrings
   };)
}

您可以将以下代码放入功能

function processArray(A){

   MoreCode;

   //For example, the first value from A is selected
   d3.csv(A[0], function(error, data) {
   MoreCode;
  })
}

并在第一个csv加载回调

中调用此函数
 functionThatReturnsArray(){
       d3.csv("http//URL.COM", function(){
           SomeMoreCode;
           processArray(ArrayOfStrings) //add this
       };)
 }