javascript - 无法从 jquery get 函数访问外部变量

标签 javascript jquery jquery-get

我正在尝试将 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?

最佳答案

get 是异步

所以当 textData 被设置时,剩下的语句已经被执行了。

因此考虑将 get 之后的语句移动到回调内部,其中填充 textData 然后可以对其进行处理。

关于javascript - 无法从 jquery get 函数访问外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17600099/

相关文章:

php - 从 jQuery 中的 PHP 显示获取错误

jquery - "The decimal field must be a number"

javascript - 如何强制同步 $.get 调用将文件内容加载到变量中?

javascript - 如何更改菜单选项卡 html 的事件颜色?

javascript - 用 jQuery 替换同一个类的链接

javascript - 给定一个 dom 元素,我如何在 jquery 和/或 JavaScript 中将其展平?

jQuery .get 和 .css 设置背景图片

javascript - 启用 SHIFT 键

javascript - 如何生成无值属性的DOM节点