【发布时间】:2020-04-09 13:10:47
【问题描述】:
我正在使用 PapaParse 导入一些数据的 Geocharts 地图。我遇到的问题是 temp = CovidData.data.find(element[1] === countries[c]); 线上的 ReferenceError。
我正在使用 PapaParse 库来解析我从 GitHub 上抓取的 csv 文件。
google.charts.load('current', {
'packages':['geochart'],
});
google.charts.setOnLoadCallback(drawRegionsMap);
function drawRegionsMap() {
Papa.parse('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv',{ download: true,
complete: function(results) {var CovidData=results;}});
countries = ["France","Germany", "United Kingdom", "US", "Italy"];
var mapData = [{label: 'Country', type: 'string'}, 'Density',{label: 'Infected', type: 'number'}];
for(c in countries) {
var temp = CovidData.data.find(element => element[0] === "" && element[1] === countries[c]);
mapData.push([countries[c],1,temp[temp.length-1]);
}
var data = google.visualization.arrayToDataTable(mapData);
var options = {
colorAxis: {colors: ['green','blue', 'red','black'], maxValue: 1},
datalessRegionColor: 'grey',
defaultColor: '#f5f5f5',
callback: drawRegionsMap,
};
var chart = new google.visualization.GeoChart(document.getElementById('regions_div'));
chart.draw(data);
}
【问题讨论】:
-
如果
temp之前没有声明过,你需要var temp =...(或者let或者const) -
@RobinZigmond 错误似乎来自 Papa.parse(...)。即使在那一行之后,CovidData 似乎也未定义。
-
好吧,我只是偏离了你所引用的路线。
CovidData可能还没有被声明 - 你没有共享足够的代码来知道,或者足够的错误消息。 -
如果您的意思是
CovidData(您并没有真正在问题本身中说,只是在 cmets 中),它是某些内部回调函数中的局部变量。这意味着它在其他地方无法访问。 -
complete回调几乎无法对在请求完成之前在其他地方运行的代码做任何事情。
标签: javascript google-visualization google-geocoder papaparse