user1010101
user1010101

Reputation: 1658

Accessing javascript object property

I have an array of objects called user. So when I do console.log(user[0]); I get an output like : Object {activityId: "2", id: "1", activityDt: "01/15/2016"}

So then I decided to store the user[0] in a seprate object.

var p = user[0];

Now finally I want to get the activityId of the object so I do

console.log(p.activityId);

But nothing gets printed and I get an error. Please suggest.

My code

 mainFactory.getUser()
  .success(function(usersData) {
      $scope.userData = usersData;

      // Determine which events we will show (removce certain events)

      var userActivity = [];
      angular.forEach($scope.userData, function (user, index){

        // console.log(user.length);

        //for(var i = 0; i<user.length; i++){
        //   console.log(user[i]);
        // }

        // console.log(user[0]);
        var p = user[0];
        console.log(p.activityId);

        // for (var key in p) {
        //   alert(p[key]);
        // }




      });
    })
    .error(function(err) {
      console.log('Error: ' + err);
    });

Error

TypeError: Cannot read property 'activityId' of undefined
    at main.controller.js:54
    at Object.forEach (angular.js:334)
    at main.controller.js:44
    at angular.js:9433
    at processQueue (angular.js:13318)
    at angular.js:13334
    at Scope.$eval (angular.js:14570)
    at Scope.$digest (angular.js:14386)
    at Scope.$apply (angular.js:14675)
    at done (angular.js:9725)

Upvotes: 2

Views: 89

Answers (1)

Simon H
Simon H

Reputation: 21005

once you have used forEach, you are getting individual elements of $scope.userData. Calling users as though an array will not work and user[0] will be undefined, as reported by your error

angular.forEach($scope.userData, function (user, index){
    var p = user;
    console.log(p.activityId);

Upvotes: 2

Related Questions