3

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

3
  • Have you tried the object.keys function ? Commented Feb 12, 2016 at 2:54
  • Just posted an answer. Please check out. Commented Feb 12, 2016 at 3:07
  • Uppsss my fault, forgot to put [0], It works.. Thank You very much Alvaro Commented Feb 12, 2016 at 3:27

1 Answer 1

4

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;

EDIT: your examples

.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


                    });
            }
        })
Sign up to request clarification or add additional context in comments.

8 Comments

Hi, Alvaro it return : 3610 not 9
You can just use this. var length = Object.keys(o).length;
Still return greater than 9, I am expecting the result is 9 because every array have 9 keys
My final code is --> var length = Object.keys($scope.listtalentapegawai).length; $scope.panjang=length; when I put {{panjang}} the result is 3610 not 9
Uppsss my fault, forgot to put [0], It works.. Thank You very much Alvaro
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.