for循环不迭代,不输出超过第一个任务的数据?
For loop does not iterate, does not output more than first task of data?
我真的很困惑,因为这个脚本已经运行了几个月,但今天我发现它不再运行了。
它是使用 Google 脚本构建的,脚本使用 Javascript,我只能使用 Logger.log
记录数据,所以它与大多数 Javascript 有点不同,但它主要工作一样。
我已经找到问题发生的地方了。我的 for
循环没有遍历数组。
function checkGetAmount(currentDate,data){
var arrayLength = data.length; // this outputs as 28 - is correct
for (var i = 0; i < arrayLength; i++) {
// This is where the error occurs. If I try to output var I, it shows as "0" always
if (data[i] == currentDate){
i++;
var amount = data[i];
return amount;
}else{
return 'Not today';}
}
}
我已经尝试测试为什么它没有爬过所有 29 个数据元素。当我控制台登录 var i
时,它 return 仅 0
。我原以为它会输出许多控制台日志,从 0
开始,然后是 1
等,直到 28
有什么地方出错了吗?或者我还能如何遍历我的数组 data
?
该函数的目的是 运行 遍历名为 data
的数组的每个元素,并检查 var currentDate
是否与其中找到的数据相匹配。如果是,它应该 return 下一个数组元素。
您的 for 循环不会遍历数组,因为您在第一次交互时从函数返回...
您的代码应该是(如果我理解正确的话):
function checkGetAmount(currentDate,data){
for (var i = 0, toi = data.length; i < toi ; i++){
if (data[i] == currentDate && data[i+1])
return data[i+1];
}
return 'not found!';
}
我真的很困惑,因为这个脚本已经运行了几个月,但今天我发现它不再运行了。
它是使用 Google 脚本构建的,脚本使用 Javascript,我只能使用 Logger.log
记录数据,所以它与大多数 Javascript 有点不同,但它主要工作一样。
我已经找到问题发生的地方了。我的 for
循环没有遍历数组。
function checkGetAmount(currentDate,data){
var arrayLength = data.length; // this outputs as 28 - is correct
for (var i = 0; i < arrayLength; i++) {
// This is where the error occurs. If I try to output var I, it shows as "0" always
if (data[i] == currentDate){
i++;
var amount = data[i];
return amount;
}else{
return 'Not today';}
}
}
我已经尝试测试为什么它没有爬过所有 29 个数据元素。当我控制台登录 var i
时,它 return 仅 0
。我原以为它会输出许多控制台日志,从 0
开始,然后是 1
等,直到 28
有什么地方出错了吗?或者我还能如何遍历我的数组 data
?
该函数的目的是 运行 遍历名为 data
的数组的每个元素,并检查 var currentDate
是否与其中找到的数据相匹配。如果是,它应该 return 下一个数组元素。
您的 for 循环不会遍历数组,因为您在第一次交互时从函数返回... 您的代码应该是(如果我理解正确的话):
function checkGetAmount(currentDate,data){
for (var i = 0, toi = data.length; i < toi ; i++){
if (data[i] == currentDate && data[i+1])
return data[i+1];
}
return 'not found!';
}