我有这个$ scope.data对象:
$scope.data = {
'8':{
'id':'81',
'name':'anna',
},
'9':{
'id':'82',
'name':'sally',
},
};
我通过这种方式使用for循环来获取id。
$scope.getID = function(id){
for(var i=0;i<$scope.data.length;i++){
if(id == $scope.data[i].id)
return $scope.data[i].name;
}
}
};
但它根本不起作用。我想知道为什么?我是以正确的方式称呼id吗?
答案 0 :(得分:3)
因为它不是您无法使用$scope.data.length
的对象数组,请尝试使用for…in
循环,因为:
for(key in $scope.data) {
var obj = $scope.data[key];
if( obj['id'] == id ) {
return obj['name'];
}
}
答案 1 :(得分:2)
如果您只需要获取对象中的键数,请尝试使用。
Object.keys(OBJ)。长度
答案 2 :(得分:1)
它可能对你有帮助 -
$scope.users=data;
$scope.getUserNameBYID = function(id){
if(users !== undefined && users.length >0){
for(key in users) {
var obj = users[key];
if( obj['id'] === id ) {
return obj['name'];
}
}
}
};