javascriptのpushで配列の最後にpushで値を追加する方法について


javascriptのpushで配列の最後にpushで値を追加する方法について理解できなくて詰まっています。  
以下のような、shop に紐付いた list があり、list に紐付いた item が存在する構造が前提のとき、  
n番目の list の item に $scope.newItem を追加するにはどうすればよいでしょうか。

こちらのコードのようにしますと、$scope.shop.lists[0].items は配列ではないので  
"TypeError: Cannot read property 'push' of undefined" とエラーになってしまします。。  
(なぜかエラーにならないときもたまにあるようです...)

[code]

    $scope.newItem = { title: 'title', shop_id: '1', list_id: '1' }
    $scope.shop.lists[0].items.push($scope.newItem)
    
[/code]

初歩的な質問ですみません。  
よろしくお願いいたします。




配列以外には`push`できません。

> こちらのコードのようにしますと、$scope.shop.lists[0].items は配列ではないので "TypeError:  
>  Cannot read property 'push' of undefined" とエラーになってしまします。。

一応以下のようにすれば動くと思いますが。。。

[code]

    $scope.shop.lists[0].items = [];
    $scope.newItem = { title: 'title', shop_id: '1', list_id: '1' }
    $scope.shop.lists[0].items.push($scope.newItem)
    
[/code]




配列以外には`push`できません。

> こちらのコードのようにしますと、$scope.shop.lists[0].items は配列ではないので "TypeError:  
>  Cannot read property 'push' of undefined" とエラーになってしまします。。

一応以下のようにすれば動くと思いますが。。。

[code]

    $scope.shop.lists[0].items = [];
    $scope.newItem = { title: 'title', shop_id: '1', list_id: '1' }
    $scope.shop.lists[0].items.push($scope.newItem)
    
[/code]

