我有一个通过迭代现有表收集的数据数组,如下所示:
---------------
Mon | Hot | 12
---------------
Tue | Cold | -2
---------------
Wed | Warm | 3
---------------
Thu | Cold | -4
---------------
Fri | Cold | -3
---------------数组中的数据存储为:'Mon','Hot','12','Tue','Cold','-2‘。等等。
现在需要在翻转了行和列的表中显示数据,以便数据如下所示:
Mon | Tue | Wed | Thu | Fri
-------------------------------
Hot | Cold | Warm | Cold | Cold
-------------------------------
12 | -2 | 2 | -4 | -3我正在努力寻找正确的循环语句来正确地打印数据。
到目前为止,我有以下几点:
for (i = 0; i < weather_data.length; i++)
{
if (i%5==0)
{
table.push('<tr><td>'+weather_data[i*3]+'</td>');
}
else if(i%4==0)
{
table.push('<td>'+weather_data[i*3]+'</td></tr>');
}
else
{
table.push('<td>'+weather_data[i*3]+'</td>');
}
}它正确地显示了第一行,但其余的都是未定义的,因为调用的索引对于数组来说显然太大了。我已经计算出第二行需要调用以下索引:((index-5)*3)+1,但第三行也将需要不同的索引调用。必须有一个对所有行都有效的方程式。这一定是一个相当常见的操作!
生成的表需要按以下顺序显示索引:
0 3 6 9 12
1 4 7 10 13
2 5 8 11 14所以循环需要按照从左到右,然后是下一行的顺序生成它们。
~还需要分别添加必要的起始<tr>和</tr>标签。
发布于 2012-07-08 03:34:55
var data = ['Mon', 'Hot', '12', 'Tue', 'Cold', '-2',
'Wed', 'Warm', '3', 'Thu', 'Cold', '-4'];
var width = 3;
var height = data.length / width;
var r = "";
for(var i = 0; i < width; i++) {
var row = [];
for(var j = 0; j < height; j++) {
row.push("<td>" + data[j * width + i] + "</td>");
}
r += "<tr>" + row.join("") + "</tr>";
}
$("#container_id").html("<table>" + r + "</table>");https://stackoverflow.com/questions/11377980
复制相似问题