【发布时间】:2011-10-07 15:46:24
【问题描述】:
到目前为止,我尽我所能创建了一个嵌套数组,但我觉得我做错了,或者有些东西没有意义。任何人都可以看看并告诉我我的数组是否是构建嵌套数组的方法。我想要的只是在特定标题下创建行,所以我嵌套数据并使用嵌套循环调用它。也许有一种更简单的方法来实现它。代码如下:
var data = [
{title:'Row Title 1'},
[{leftCol:'Some text for left column',rightCol:'Some text for right column'},
{leftCol:'Some text for left column',rightCol:'Some text for right column'},
{leftCol:'Some text for left column',rightCol:'Some text for right column'}],
{title:'Row Title 2'},
[{leftCol:'Some text for left column',rightCol:'Some text for right column'},
{leftCol:'Some text for left column',rightCol:'Some text for right column'},
{leftCol:'Some text for left column',rightCol:'Some text for right column'}]
];
for (var i=0, j=data.length; i < j; i++) {
if(data[i].title != null){
document.write('<b>'+data[i].title+'</b><br />');
}
for(p=0,plen=data[i].length; p<plen;p++){
document.write('<p style="background:#eee;">'+data[i][p].leftCol+'</p>');
document.write('<p>'+data[i][p].rightCol+'</p>');
}
}
【问题讨论】:
-
您选择使用数组而不是 JSON 有什么特别的原因吗?
-
没有理由。但是我的代码正在破坏我的移动应用程序,我觉得我的数组做错了,因为如果我去掉标题“{title:'Row Title 1'}”那么它就可以完美运行。
-
您的代码中断的原因是因为您的嵌套 for 循环不是有条件的(它检查对象
{title: 'Row Title 1'}和{title: 'Row Title 2'}的长度属性)。将其包装在else范围内。
标签: javascript arrays multidimensional-array nested-loops