[英]How to iterate through an object containing objects?
我的对象:
"hockey": {
stats: {
skaters: {
regular: [
{name: "stat1", key: "statkey1"}
{name: "stat2", key: "statkey2"}
{name: "stat3", key: "statkey3"}
]
},
goalies: {
regular: [
{name: "stat1", key: "statkey4"}
{name: "stat2", key: "statkey5"}
{name: "stat3", key: "statkey6"}
]
}
}
}
我的代码:
var stats = [];
var key = "";
for (position in sport.stats) {
for (stat_group in position) {
for (stat in stat_group) {
key = stat.key;
stats[key] = true;
}
}
}
我正在尝试使用以上代码从位于sport.stats.position.stat_group
内的每个对象中获取属性key
。 每种运动都有不同数量的位置和状态组,因此三重循环。 我没有收到任何控制台错误,只是根本没有抓住键,并且迭代器变量不是针对对象而是整数。
这就是我想要的结果stats
对象为:
{
"statkey1": true,
"statkey2": true,
"statkey3": true,
...
}
希望你们能提供帮助! 谢谢!
因为...在javascript中为您提供了对象的键,而不是值。
根据您的逻辑,这就是您要做的事情:
var stats = {};
var key = "";
for (position in sport.stats) {
for (stat_group in sport.stats[position]) {
for (stat in sport.stats[position][stat_group]) {
key = sport.stats[position][stat_group][stat].key;
stats[key] = true;
}
}
}
JS for...in
循环迭代键,而不是值。 如果要完全迭代对象,可以这样进行:
for (key in sports.stats) {
var position = sports.stats[key];
for (group_key in position) {
var stat_group = position[group_key];
for (stat_key in stat_group) {
stat_group[stat_key] = true;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.