Reputation: 209
Please help me, I have angularJS code like this :
.state('masterpegawai.alltalenta', {
url: '/alltalenta',
templateUrl: 'public/js/partial-masterpegawai-alltalenta.html',
controller:function($scope,$http,$interval){
$http.get('http://10.16.107.77:3000/allhistorytalenta').success(function(data){
$scope.listtalentapegawai=data;
});
}
})
That produce JSON like this :
[{
"nip": "6080022A",
"nama": "ASLAN PURNAMA",
"semester1_2012": null,
"semester2_2012": null,
"semester1_2013": null,
"semester2_2013": null,
"semester1_2014": null,
"semester2_2014": "Potensial",
"semester1_2015": null
}, {
"nip": "6080022A",
"nama": "ASLAN PURNAMA",
"semester1_2012": null,
"semester2_2012": null,
"semester1_2013": null,
"semester2_2013": null,
"semester1_2014": null,
"semester2_2014": null,
"semester1_2015": "Potensial"
}, {
"nip": "6080038A",
"nama": "SYAIFUL ANWAR",
"semester1_2012": null,
"semester2_2012": null,
"semester1_2013": null,
"semester2_2013": null,
"semester1_2014": null,
"semester2_2014": "Potensial",
"semester1_2015": null
}, {
"nip": "6080038A",
"nama": "SYAIFUL ANWAR",
"semester1_2012": null,
"semester2_2012": null,
"semester1_2013": null,
"semester2_2013": null,
"semester1_2014": null,
"semester2_2014": null,
"semester1_2015": "Potensial"
}, {
"nip": "6080048A",
"nama": "NURHAYATI",
"semester1_2012": null,
"semester2_2012": null,
"semester1_2013": "Potensial",
"semester2_2013": null,
"semester1_2014": null,
"semester2_2014": null,
"semester1_2015": null
}]
I Would like to count the array key and my final result should be 9
because each array contain 9 keys
"nip",
"nama",
"semester1_2012",
"semester2_2012",
"semester1_2013",
"semester2_2013",
"semester1_2014",
"semester2_2014",
"semester1_2015"
I am new to AngularJS and have try length method but the result always greater than 9 because it counts the entire JSON
Upvotes: 3
Views: 1625
Reputation: 9763
You can use the function Object.keys
var length = 0;
Object.keys(o).forEach(function(key) {
var val = o[key];
length = length + 1;
});
Where o
is any object.
In your case o
should be any object of the array $scope.listtalentapegawai
.
If you only want the Length
you can do just like:
var length = Object.keys(o).length;
.state('masterpegawai.alltalenta', {
url: '/alltalenta',
templateUrl: 'public/js/partial-masterpegawai-alltalenta.html',
controller:function($scope,$http,$interval){
$http.get('http://10.16.107.77:3000/allhistorytalenta').success(function(data){
$scope.listtalentapegawai=data;
var length = Object.keys($scope.listtalentapegawai[0]).length; // will be 9
});
}
})
Upvotes: 4