大家好,谢谢大家。更新了kopy.io上的链接。
var gems = [...,
{
id: 3,
name: 'Level-3',
row: {
r1: '*-*-*',
r2: '**-**',
r3: '*-*-*'
},
canPushtoDb: true,
hideLevel: true,
status: 1
//canvas
}
];现在,我试图迭代这样的对象:
var text;
var arr;
var arr2 = gems[0].row;
for( arr in arr2){
text += '<br />' + arr2[arr] + '<br />';
}但并没有完全发挥作用:

//* If i will do a kind of graphic map:
// var something = * * * * * <--- row1
// * * * * * <--- row2
// * * * * * <--- row3
// somthing = [x][y]所以我把东西保存在gems[]数组上,很容易编辑/更改/修改。这确实是个问题,因为在其他方面,我必须在每个级别上实现某种函数。在检查'id‘或'name’键值后,我需要一种方法来遍历'row‘成员。
我很困惑,因为我可以单独访问每个成员,比如:gems[2].name ---> Level-3或gems[1].row.r2 ---> -***-。但这不是我想要的。在检查某个“值”、迭代“行”成员之后,我搜索一个循环。例如: if level == id然后在gems[i].row上循环。但我找不到路。
var gems = [{
id: 1,
name: 'Level-1',
row: {
r1: '*****',
r2: '-***-',
r3: '--*--'
},
canPushtoDb: true,
hideLevel: false,
status: 1
//canvas
}, {
id: 2,
name: 'Level-2',
row: {
r1: '**-**',
r2: '-*-*-',
r3: '-***-',
},
canPushtoDb: true,
hideLevel: false,
status: 1
//canvas
}, {
id: 3,
name: 'Level-3',
row: {
r1: '*-*-*',
r2: '**-**',
r3: '*-*-*'
},
canPushtoDb: true,
hideLevel: true,
status: 1
//canvas
}
];
var text;
var arr;
var arr2 = gems[0].row;
for (arr in arr2) {
text += '<br />' + arr2[arr] + '<br />';
}
document.write(text);
发布于 2016-11-30 10:26:55
为什么不将row属性设置为易于迭代的数组,至少比具有属性的对象更好呢?
row: ['*-*-*', '**-**', '*-*-*'],如果您希望保留该对象,则可以迭代这些键。
['r1', 'r2', 'r3'].forEach(function (k) {
console.log(gems[1].row[k]) //do something
});发布于 2016-11-30 10:30:27
gems[0].row返回一个对象,而不是一个数组。
因此,您想要的是遍历一个对象。喜欢
var arr2 = gems[0].row;
for (var key in arr2 ) {
text += '<br />' + arr2[key] + '<br />';
}https://stackoverflow.com/questions/40885822
复制相似问题