这是我在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"}。
response.groupIds[i]
{"unknown name":"unknown value"}
我希望访问javascript中的这两个数据位,如果我事先不知道例如什么,该怎么做unknown name?
unknown name
使用Object.keys检索键名的完整列表(阵列)。一个polyfill 在这里可用。
Object.keys
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-i-in
hasOwnProperty
for (var name in group) { if (group.hasOwnProperty(name)) { var value = group[name]; // Do something } }