在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 />';
}