次のコードブロックが正常配列値(1号130879253000、34756)コードの次のセクションでJavaScript関数が配列にデータを入力しないのはなぜですか?
function getCsv(file_name){
var array_holder = [];
$.get(file_name, function(csv, state, xhr) {
// inconsistency
if (typeof csv != 'string') {
csv = xhr.responseText;
}
// parse the CSV trades
var header, comment = /^#/, x;
$.each(csv.split('\n'), function(i, line){
if (!comment.test(line)) {
if (!header) {
header = line;
}
else {
var point = line.split(';'),
date = point[0].split('-'),
time = point[1].split(':');
if (point.length > 1) {
x = Date.UTC(date[2], date[1] - 1, date[0], time[2], time[1], time[0]);
array_holder.push([
x, // time
parseFloat(point[2]) // close
]);
}
}
}
}); // each
alert('No. 1' + array_holder[0]);
});
return array_holder;
}
を返し、IはgetCsvをコールしようとしているが、私は2番
を未定義取得します$(function() {
var trades = getCsv('trades.csv');
var spreads = getCsv('spreads.csv');
alert('No. 2' + trades[0]);
}
なぜ配列が生成されないのですか?実際のコードでは、上記の2つの関数が、ここにリストされている順序で互いに隣り合っています。したがって、ファイルは正しく読み込まれています。つまり、array_holderがスコープから外れてガベージコレクションが行われたようです。
があなたのCSV文字列/ファイルを投稿することができ、または[JSFiddle](http://www.jsfiddle.net)上記のJSを使用して、CSVを作る: ソリューションを取得するには、この議論の答えを参照してください。テキスト? – Bojangles
CSVは必要ありません。非同期対同期の問題です。 – epascarello