我有一个形式的对象:
var test = {"2011":{"10":4,"9":9,"8":15,"7":11,"6":11,"5":13,"4":9,"3":5,"2":9,"1":4,"0":20},"2010":{"11":9,"10":23,"9":58}}
我想对此进行迭代,以便我可以命中每年和每月的组合。我有:
var years = d3.keys(test),
months = d3.range(12),
data = [];
因此,作为一个 Javascript 新手,为了全面检查我检查了年
的东西。
document.writeln(years)
2011,2010
很酷,但是当我尝试遍历 years
数组以从 test
元素中提取数据时,我做了我认为正确的测试,但是元素丢失:
for(var y in years) {
document.writeln(y);
}
0,1
如何遍历 years
以获取其中的实际元素 (2011,2010
)?
最佳答案
for in
检索索引/键(不是值)。
你需要修改你的循环,像这样:
for(var y in years) {
document.writeln(years[y]);
}
编辑 - 根据 missingno 的评论,使用 for in
迭代数组是一个 bad idea .
for(var i = 0, l = years.length; i < l; i++) {
document.writeln(years[i]);
}
一些额外的信息...如果您对对象使用 for/in 循环,它也会遍历您的属性键。例如,
for(var y in test) {
//This will yield, "2011" and then "2010"
document.writeln(y);
}
关于javascript - 遍历 Javascript 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8389148/