我有一系列对象,我试图获取它的值,尽管里面的变量没有预定义。问题是我不知道该怎么做。
阵列:
Array[3]: [
{
id: "1",
name: "name1",
lastname: "lastname1"
},
{
id: "2",
name: "name2",
lastname: "lastname2"
},
{
id: "3",
name: "name3",
lastname: "lastname3"
}
]
使用Javascript:
this.myFunction = function(response) {
var iLength = response.data.length;
for(var i=0;i<iLength;i++) {
var jLength = Object.keys(response.data[i]).length;
for(var j=0;j<jLength;j++) {
// ???
}
}
}
所以不要以这种方式访问这些值,
response.data[i].id
response.data[i].name
response.data[i].lastname
我宁愿以这种方式访问它:
response.data[i]."somethingSomething[j]";
这可能吗?我对AngularJS很新,所以我可能不会以正确的方式处理这个问题。任何帮助将不胜感激。
编辑:我已经更好地提出了我的问题。
答案 0 :(得分:3)
您可以遍历密钥。
for (var i = 0; i < iLength; i++) {
var keys = Object.keys(response.data[i]);
for (var j = 0; j < keys.length; j++) {
console.log(response.data[i][keys[j]]);
}
}
但如果您事先知道了这些键,则可以使用带键的数组并在迭代时保持稳定的顺序。
var keys = ['id', 'name', 'lastname'];
for (var i = 0; i < iLength; i++) {
for (var j = 0; j < keys.length; j++) {
console.log(response.data[i][keys[j]]);
}
}
答案 1 :(得分:0)
您可以像这样使用for ... in ...
:
var obj = {
id: "1",
name: "name1",
lastname: "lastname1"
};
for (key in obj) {
if (obj.hasOwnProperty(key))
document.body.innerHTML += key + "<br>";
}
&#13;