gpt4 book ai didi

javascript - 为什么我的 JavaScript 函数没有填充我的数组?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:05:48 26 4
gpt4 key购买 nike

以下代码块成功返回数组值(编号1 130879253000、34756)

    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 超出范围并被垃圾收集。

最佳答案

这是由于 $.get() 的异步性质。在您发出警报时,AJAX 请求尚未运行。

在请求的成功回调中执行警报,其中发生“No.1”警报。

关于javascript - 为什么我的 JavaScript 函数没有填充我的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7377970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com