你好,谢谢你们。 更新了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[]
数组,易于编辑/更改/修改。
多数民众赞成在这个问题,因为在其他方面,我必须实施一个
每个级别的功能。
我需要一种方法来迭代&#39; row&#39;会员在检查后发现了&#39; id&#39;或者&#39; name&#39;
关键价值。
我很困惑,因为我可以在每个成员上单独访问,例如:gems[2].name ---> Level-3
或gems[1].row.r2 ---> -***-
。但事实并非如此
我想要的是。我在检查了一些&#39;值&#39;之后搜索了一个循环。
迭代行#&#39; row&#39;会员。例如: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);
&#13;
答案 0 :(得分:1)
为什么不将row属性设置为一个易于迭代的数组,至少比具有属性的对象更好?
row: ['*-*-*', '**-**', '*-*-*'],
如果您想保留对象,可以迭代按键
['r1', 'r2', 'r3'].forEach(function (k) {
console.log(gems[1].row[k]) //do something
});
答案 1 :(得分:1)
您的gems[0].row
会返回一个对象,而不是一个数组。
因此你想要的是循环一个对象。像
var arr2 = gems[0].row;
for (var key in arr2 ) {
text += '<br />' + arr2[key] + '<br />';
}