Не удается получить доступ к внешним переменным из функции get jquery
Я пытаюсь превратить CSV в ассоциативный массив, но функция $.get не меняет внешнюю переменную textData
function csvToArray(filename){
var textData;
var headers = new Array(),
dataValues = new Array();
$.get(filename, function(data){
textData = data;
});
var dataArray = textData.split('\n');
headers = dataArray[0].split(',');
for(var i = 1; i<dataArray.length; i++){
var thisLine = dataArray[i].split(','),
tempArray = new Array();
for(var j = 0; j<thisLine.length; j++){
tempArray[headers[j]] = thisLine[j];
}
dataValues.push(tempArray);
}
return dataValues;
}
Почему textData не устанавливается?
1 ответ
Решение
Получить асинхронный
Таким образом, к моменту установки textData остальные операторы уже выполняются.
Так что рассмотрите возможность переноса заявлений после get
внутрь обратного вызова, где textData
заполняется, и тогда обработка может быть сделана на нем.