複数の 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);