AngularJS 计数 JSON 数组

标签 angularjs json

请帮助我,我有这样的 angularJS 代码:

.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;

                    });
            }
        })

生成如下 JSON:

[{
    "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
}]

我想计算数组键,我的最终结果应该是 9

因为每个数组包含 9 个键

"nip",
"nama",
"semester1_2012",
"semester2_2012",
"semester1_2013",
"semester2_2013",
"semester1_2014",
"semester2_2014",
"semester1_2015"

我是 AngularJS 的新手,尝试了 length 方法,但结果总是大于 9,因为它计算整个 JSON

最佳答案

您可以使用函数Object.keys

var length = 0;    

Object.keys(o).forEach(function(key) {
              var val = o[key];
             length = length + 1;

    });

其中 o 是任何对象。

在您的情况下 o 应该是数组 $scope.listtalentapekawai 的任何对象。

如果您只想要长度,您可以这样做:

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


                    });
            }
        })

关于AngularJS 计数 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35354011/

相关文章:

javascript - $location的概念

c# - 如何在序列化之前确定 JSON 表示的长度

angularjs - 通过 ng-click 传递的 $event 未定义

javascript - orderBy 按特定属性的 Angular 顺序

javascript - 从 Json 获取 item 并用 JS 编写

java - 在 Android 中寻找 JSONObject 的最快方式字符串

javascript - 摊牌会产生错误的输出

javascript - 在 AngularJS 中排序时删除行和 localStorage 键

php - Laravel Eloquent 检索带有 JSON 列的行

ios - 将 UITableView 部分与 Web 服务分组