这是我在jQuery中的响应代码:
var response = $.parseJSON(response);
for (var i = 0; i < response.groupIds.length; i++) {
console.log(response.groupIds[i], i);
}
每个response.groupIds[i]
的格式为{"unknown name":"unknown value"}
。
我希望在javascript中访问这两个数据位,当我事先不知道什么时,我该怎么做到这一点? unknown name
是?
答案 0 :(得分:14)
使用Object.keys
检索键名的完整列表(数组)。可以使用填充物here。
var group = response.groupIds[i];
var allPropertyNames = Object.keys(group);
for (var j=0; j<allPropertyNames.length; j++) {
var name = allPropertyNames[j];
var value = group[name];
// Do something
}
您问题的回复格式只包含一个键值对。然后可以将代码简化为:
var group = response.groupIds[i];
var name = Object.keys(group)[0]; // Get the first item of the list; = key name
var value = group[name];
如果您对该列表不感兴趣,请使用for-i-in
循环与 hasOwnProperty
。必须使用最后一种方法来排除从原型继承的属性。
for (var name in group) {
if (group.hasOwnProperty(name)) {
var value = group[name];
// Do something
}
}
答案 1 :(得分:3)
使用for..in
循环:
for( x in response.groupIds[i]) {
// x is now your unknown key
// response.groupIds[i][x] is the unknown value
}
由于对象只有一个属性,所以它可以很好地工作。