for循环不迭代,不输出超过第一个数据任务?

时间:2015-01-22 11:00:52

标签: javascript arrays for-loop

我真的很困惑,因为这个脚本已经好几个月了,然后今天我发现它已经不再有用了。

它是使用Google Scripts构建的,它使用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时,它仅返回0。我曾期望它输出许多控制台日志,从0开始,然后1等,直至28

我出错的任何想法?或者我如何迭代我的数组data

该函数的目的是遍历名为data的数组的每个元素,并检查var currentDate是否与那里找到的数据匹配。如果是,它应该返回下一个数组元素。

1 个答案:

答案 0 :(得分:3)

你的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!';
}