【问题标题】:getFullYear not working when using the loop counter使用循环计数器时 getFullYear 不起作用
【发布时间】:2016-07-10 19:28:57
【问题描述】:

我确信这是有充分理由的,但我似乎没有想到。 我正在使用 Angular,我在一个“for”循环中使用函数 getFullYear(),该循环遍历一组对象。当我使用例如booking[i].getFullYear(), (我是“for”定义中的计数器)它说booked[i].getFullYear 不是一个函数,但是如果我说booked[0].getFullYear - 只需将计数器替换为一个数字(或在循环内创建一个数字的 var)- 它可以工作。

例如

 for (gig in $scope.booked ){   
            var i =0; //new var to use as a counter
            $scope.booked[gig].visualDate={
                year: $scope.booked[i].when.getFullYear(), //works
                //year: $scope.booked[gig].when.getFullYear() //does not work
            };
            //i++; I can't use it as a counter
    };

提前致谢

【问题讨论】:

  • 您必须显示更多的代码...否则我们将看不到错误的根源。 $scope.booked 是如何初始化的以及它是如何收集的。是带索引号键的对象还是带数字键的数组?
  • 听起来你可能在 $scope.booked 中有一些非整数值,你能不能在 for 循环中做一个 console.log(gig); 来验证它们都是有效的整数,所以它不是试图调用 $scope.booked[''] 或其他无效的东西。 (作为替代方案,尝试使用 $scope.booked.length 执行经典的数字 for 循环,看看错误是否消失。)

标签: javascript angularjs loops


【解决方案1】:

您必须显示更多的代码...否则我们将看不到错误的根源

$scope.booked 是如何初始化的以及它是如何收集的。是带索引号键的对象还是带数字键的数组?

【讨论】:

  • 对 OP 的问题应该添加为评论?
  • 好吧,我以为我还做不到。
猜你喜欢
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多