JavaScript新手在这里。 我搜索并搜索了答案,似乎无法解决这个问题。 我传递给函数的数组没有作为引用正确传递。 我不认为这是一个像许多帖子暗示的异步问题,但我可能是错的。
我有全局数组,我正在传递给一个函数。 在函数内部,数组返回其正确的值,但是当我尝试在函数外部访问它们时,它们是未定义的。
就上下文而言,我正在通过3个阵列,这些阵列保持干球温度,湿球温度和小时,测量结果用于以后的计算。 为简洁起见,我只提供了一些示例数据点。 示例代码如下:
function run(){
var hour = [];
var db = [];
var wb = [];
var cities = ["AB Edmonton","MI Detroit"];
getData(hour, db, wb, cities);
//this shows undefined, although within getData it is accurate data
alert(hour[1]);
}
function getData(hour, db, wb, cities){
//i= drop-down selection index, set to zero for testing
i=0;
switch(cities[i]) {
case "AB Edmonton":
hour = [1,2,3];
db = [15,18,21];
wb = [10,13,20];
break;
//case "MI Detroit":....
}
//this shows accurate values in the alert window
alert(cities[i] + " at hour:" + hour[i] + " the temp is:" + db[i]);
return [hour, db, wb];
};