无法读取未定义Javascript的属性“推送”

时间:2015-05-20 13:00:42

标签: javascript arrays angularjs

嗨,接缝就像我不能推动我的阵列? 代码:

  $scope.arrResult = [];
  dpd.timesheets.get( function (result) {
    console.log(result);

    for (i = 0, n = result.length; i < n; i++) {
      var item = result[i];
      $scope.arrResult[item.week].push(item);
    }
    console.log($scope.arrResult);

  });

我收到此控制台错误

Uncaught TypeError: Cannot read property 'push' of undefined

如果我设置$scope.arrResult[item.week].push(item); to $scope.arrResult[item.week] = item; 它没有错误 但我需要/想要推,哪有错?

1 个答案:

答案 0 :(得分:10)

这是因为

$scope.arrResult[item.week]

本身不是数组。

push()属于Array.prototype

要明白我的意思,请尝试

$scope.arrResult[item.week] = [];

$scope.arrResult[item.week] = new Array();

然后尝试push()