Javascript 如何从几个文件中导入数据?
我从不同的csv文件(每个文件只包含两行:列名和关联值)构建Javascript 如何从几个文件中导入数据?,javascript,d3.js,Javascript,D3.js,我从不同的csv文件(每个文件只包含两行:列名和关联值)构建outData选项卡,方法如下: var outData = new Array(); for(s in sources){ d3.csv(sources[s], function(error, data) { outData.push({'value' : +data[0]['var']}); }); } console.log(outData)指令给出了我的期望: [Object, Object]
outData
选项卡,方法如下:
var outData = new Array();
for(s in sources){
d3.csv(sources[s], function(error, data) {
outData.push({'value' : +data[0]['var']});
});
}
console.log(outData)
指令给出了我的期望:
[Object, Object]
对于每个对象,一个良好的预期格式,例如{value:36}
问题是所有d3函数似乎都不能在该选项卡上工作
例如,a
d3.max(outData,函数(d){return d.value;})
returnundefined
您没有显示其他代码
d3.csv()
函数是异步的,源代码中的({在outData
数组填充之前开始之后的代码。这就是为什么您认为它是未定义的
并且在d3.csv()中是有效的
accessor函数。只有在读取所有文件时才能使用outData
。一种可能的解决方案:
var outData = [];
var counter = 0;
for (s in sources){
d3.csv(sources[s], function(error, data) {
counter++;
outData.push({
'value' : +data[0]['var']
});
if (counter == sources.length) {
console.log(outData);
restOfCode();
}
});
}
function restOfCode() {
console.log('restOfCode outData:');
console.log(outData);
}
问题在于d3.csv的异步行为。