我正在尝试将几个 CSV 文件的内容加载到一个新数组中。CSV 文件具有典型的结构,第一行带有标签,值(字符串和实数)以逗号分隔。这部分代码负责加载数据以供将来与 Google Maps Api 一起使用(目前这不是问题,因为我只卡在加载数据上)。我想要一个结构,我可以通过它的名称来调用一个元素,这var nodedata = {};
就是创建它的原因。
所以我完全不明白的是为什么代码的某些部分根本没有被执行?console.log(nodedata);
是空的,至少在我的 Firefox 控制台中没有。
这是我对这个问题的尝试 - 到 csv 文件的链接在代码中。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script src="http://jquery-csv.googlecode.com/files/jquery.csv-0.71.js"></script>
<script type="text/javascript">
var nodes = {};
var generation = {};
var nodedata = {};
$.get('https://dl.dropboxusercontent.com/u/25575808/energy/nodes.csv', function (response) {
nodes = $.csv.toObjects(response);
console.log(nodes);
});
$.get('https://dl.dropboxusercontent.com/u/25575808/energy/generation.csv', function (response) {
generation = $.csv.toObjects(response);
console.log(generation);
});
function getGeneration (nodename){
gen = 0;
for (var i = 0; i < generation.length; i++) {
if (generation[i].datetime == "2013-01-01 01:00"){
if (generation[i].node == nodename){
gen = gen + Number(generation[i]["output (MW)"])
}
}
}
return gen;
}
for (var i = 0; i < nodes.length; i++) {
nodedata[nodes[i].Node] = {
center: new google.maps.LatLng(nodes[i].Latitude,nodes[i].Longitude),
nodegen : getGeneration(nodes[i].Node)
}
}
console.log(nodedata);