角度如何显示在JSON数组键
问题描述:
我有以下对象JSON数组:角度如何显示在JSON数组键
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter","lastName":"Jones"}
]
,我想在JSON阵列特定键:
for (var ke in employees) {
if (employees.hasOwnProperty(ke)) {
console.log(employees[ke].lastName);
};
,但它不工作!
答
你在年底缺少一个右花括号的for循环,它应该是:
for (var ke in employees) {
if (employees.hasOwnProperty(ke)) {
console.log(employees[ke].lastName);
};
}
但是,你可以使用angular.forEach而不是像这样:
angular.forEach(employees, function (ke) {
if(ke.lastName) {
console.log(ke.lastName);
}
});
答
试试这个
for (var index in employees) {
var tp = employees[index];
console.log(tp['yourkeyhere']);
}
答
当通过JavaScript数组遍历,使用标准for
循环而不是for...in
。
for (var i=0; i < employees.length; i+=1) {
console.log(employees[i].lastname);
}
可替代地,现在ES5提供了可以被使用的Array.forEach功能。
employees.forEach(function (employee) {
console.log(employee.lastname);
}
答
做法:1 - 随着越来越多的验证。
var employees= [
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter","lastName":"Jones"}
];
for(var obj in employees) {
if(employees.hasOwnProperty(obj)){
for(var prop in employees[obj]){
if(employees[obj].hasOwnProperty(prop)){
alert(prop + ' : ' + employees[obj][prop]);
//to change the key's value
if(employees[obj][prop] == 'Smith'){
employees[obj][prop]='Mike';
}
}
}
}
}
方法:2没有验证(不推荐)
for(i in employees) {
var obj = employees[i];
for(j in obj) {
var key = j;
var val = obj[j];
alert(key + " : " + val);
}
}
编辑:
var employees={"firstName":"John", "lastName":"Doe"};
Object.keys(employees); // return ["firstName", "lastName"]
Object
有prototype
keys
,返回keys
的Array
在Object
铬,FF & Safari支持Object.keys
答
你的代码更改为以下。 它工作正常。
employees=[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter","lastName":"Jones"}
]
for(var ke in employees) {
if (employees.hasOwnProperty(ke)) {
console.log(employees[ke].lastName);
};
}
太感谢你了:) – Cheps