我在下面的while循环中遇到了这个奇怪的范围问题。如果我将console.log放在函数和while循环中,我会得到我正在寻找的结果,但对于下面的代码,我什么都没得到。似乎.push方法没有将值推入数组CCY和dts。我有什么想法可以解决这个问题吗?
var CCY=[];
var dts=[];
var start = new Date(x);
var end = new Date(y);
while(start < end){
var newDate = start.setDate(start.getDate() + 1);
start = new Date(newDate);
var d = (start.toISOString().split('T')[0]);
var JSONItems=[];
$.getJSON("http://api.fixer.io/"+d, function(data){
JSONItems = data;
CCY.push([JSONItems.rates.USD]);
dts.push([JSONItems.date])
});
}
console.log("Date= "+dts);
console.log("Rate= "+CCY);