(제 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;
}
, 나는 getCsv를 호출하기 위해 노력하고있어하지만 난 정의되지 않은 제 2
를 얻을 수$(function() {
var trades = getCsv('trades.csv');
var spreads = getCsv('spreads.csv');
alert('No. 2' + trades[0]);
}
배열이 채워지지 않는 이유는 무엇입니까? 실제 코드에서 위의 두 함수가 여기에 나열된 순서대로 서로 바로 옆에 있습니다. 그래서 파일이 올바르게 읽혀지고있는 것처럼 보입니다. array_holder가 범위를 벗어나서 가비지 수집을받는 것처럼 말입니다.
당신이 당신의 CSV 문자열/파일을 게시 할 수 또는 [JSFiddle] (http://www.jsfiddle.net) 위의 JS를 사용하여 CSV합니다 솔루션을 얻기 위해이 토론의 답변을 참조하십시오 본문? – Bojangles
CSV가 필요하지 않습니다. 비동기 대 동기화 문제입니다. – epascarello