在javascript对象上迭代-第二部分
大家好,谢谢大家。 更新了上的链接 现在我试着在某个对象上迭代,如下所示:在javascript对象上迭代-第二部分,javascript,Javascript,大家好,谢谢大家。 更新了上的链接 现在我试着在某个对象上迭代,如下所示: var text; var arr; var arr2 = gems[0].row; for( arr in arr2){ text += '<br />' + arr2[arr] + '<br />'; } 为什么不将row属性设置为数组呢?数组很容易设置,至少比具有属性的对象更好 row: ['*-*-*', '**-**', '*-*-*'], 如果希
var text;
var arr;
var arr2 = gems[0].row;
for( arr in arr2){
text += '<br />' + arr2[arr] + '<br />';
}
为什么不将row属性设置为数组呢?数组很容易设置,至少比具有属性的对象更好
row: ['*-*-*', '**-**', '*-*-*'],
如果希望保留该对象,可以在键上迭代
['r1', 'r2', 'r3'].forEach(function (k) {
console.log(gems[1].row[k]) //do something
});
您的
gems[0]。行返回一个对象而不是数组
因此,您想要的是通过对象循环。像
var arr2 = gems[0].row;
for (var key in arr2 ) {
text += '<br />' + arr2[key] + '<br />';
}
var arr2=gems[0]。行;
for(arr2中的var键){
text+='
'+arr2[key]+'
';
}
在text+=…
之前,您是否定义了如下文本:var text=”“
?如果没有,这是您在文本
开头的未定义
。非常感谢你。就是这样。如果你不知道对象中的所有键:object.keys(myObject.forEach(…)
谢谢尼娜,这是我在帖子中显示的第一个循环。输出与您在上图中看到的相同。也许是我的错,但我不明白为什么它会再次出现。但是您的方法解决了编辑器中的一个警告,指示我将函数包装到if
语句中。所以无论如何谢谢你。再次感谢您,因为我看到您正在访问第二个成员,如行[j]
,这就更详细地解释了我!!!!!!。从概念上讲,你是对的。因为我使用的是一个含义混乱的arr
变量,但只不过是一个“声明的”变量,所以它没有初始化!。无论如何谢谢你!为了简单起见,我喜欢这个aproach,但我更喜欢@Nina的aproach,因为它避免了编辑器警告。@Hell0没问题。:)
['r1', 'r2', 'r3'].forEach(function (k) {
console.log(gems[1].row[k]) //do something
});
var arr2 = gems[0].row;
for (var key in arr2 ) {
text += '<br />' + arr2[key] + '<br />';
}