所以我有一个对象数组,我想获取带有键“Z”的对象。
显然,我可以循环遍历数组并逐一检查每个键并获取匹配的键,但我认为可能有比我当前的方法更好的方法:
for (var i = 0; i < data.length; i++) {
if (Object.keys(data[i]).toString() == "z") {
return data[i].z;
break;
}
}
我的数据:
"data": [
{ "X": { "foo": "bar1" } },
{ "Y": { "foo": "bar2" } },
{ "Z": { "foo": "bar3" } }
]
期望的输出:
{
"foo": "bar3"
}
最佳答案
您可以将其替换为对象,而不是对象数组:
"data": {
"X": { "foo": "bar1" },
"Y": { "foo": "bar2" },
"Z": { "foo": "bar3" }
}
然后像这样访问你的对象:
data['Z']
如您所见,更加整洁。
我猜您最初使用数组是为了方便附加等,但使用对象也同样简单:
data['A'] = { "foo": "bar4" };
将在数据中创建键“A”
,并且您仍然可以使用for (... in ...)
循环遍历对象,即:
for (key in data) {
console.log(data[key].foo);
}
应该打印
bar1
bar2
bar3
bar4
关于javascript - 使用键获取对象数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28751837/