请帮助我,我有这样的 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/