我必须这样做:对字符串进行处理我会问一些用户:
text = "";
arr = ["*****"];
arr2 = [];
text = arr.toString();
for(i=0; i<text.length; i++) {
arr2.push(text[i]);
}
---> arr2 = [*,*,*,*,*] <--- thats what i want!.
但是我必须使用这样的大量数据,所以我创建了数组来构建结构化数据的内容:
var gems = [
{
name: 'Level-1',
row: {
r1: '*****',
r2: '-***-',
r3: '--*--'
},
canPushtoDb: true,
hideLevel: false,
status: 1
//canvas
},
{
name: 'Level-2',
row: {
r1: '**-**',
r2: '-*-*-',
r3: '-***-',
},
canPushtoDb: true,
hideLevel: false,
status: 1
//canvas
},
{
name: 'Level-3',
row: {
r1: '*-*-*',
r2: '**-**',
r3: '*-*-*'
},
canPushtoDb: true,
hideLevel: true,
status: 1
//canvas
}
];
我想在gems
内循环以在某种数组上转换该字符串,就像我在这个问题的开头写的那样。
我正在寻找一个Angular示例,它使用controller
包装这些对象。
但就目前而言,我已经将我的代码放在他自己的一些重构版本上了。我只需要一些硬编码的函数或方法,如gems.name[0].row.r1
(这对我不起作用!)来获取我正在处理的所有对象。
答案 0 :(得分:2)
你可以对gems进行迭代:
for(var i = 0; i < gems.length; i++) {
...
}
然后你可以循环遍历这个对象(在你上面的for循环中)
$.each(var obj in row) {
...Do something with each object found in row
}
要访问硬编码对象,您的问题是gems.name[0].row.r1
应该是gems[0].row.r1
答案 1 :(得分:1)
正如@Patrick Evans所指出的,除了arr2
应该是arr2 = gems[0].row.r1
之外,你的代码是正确的。看看这个JSFiddle。