Javascript-依次遍历数组中的元素,然后遍历下一个元素

时间:2020-03-21 06:32:18

标签: javascript arrays

我需要构造基于HTML表的数组。我快到了,但是停留在一点上。让我尝试解释一下:

我已经可以构造表的标题了,并可以根据需要添加尽可能多的列,

rowLength = 2,好吧->因此,我需要创建两个数据行

notUniq = 8个ma元素的总数

arrayLength = 4,基本上就是表头的列号。

答案是一个数组,包含8个元素:Adela Cervantsz,true,Dell,Good lapotp please,false,Barton Friesner,iOS iOS,iPad

所以我的代码的一部分:

    for (var k = 0; k < rowLength; k++) {
            string += "<tr>";
            for (var j = 0; j < notUniq; j++) {
                string += "<td style=" + "width: 5%; font-size:70%" + ">" + Answers[j] + "</td>";
            }
            string += "</tr>";
        }

它产生了我: Please click to check 因此,它可以创建2行,但是每行有8列,这不行,我只需要前4个元素,然后是第2 4个元素。

如果我修改代码,那么如果用arrayLength进行“ for”操作4次,则代码为:

    for (var k = 0; k < rowLength; k++) {
            string += "<tr>";
            for (var j = 0; j < arrayLength; j++) {
                string += "<td style=" + "width: 5%; font-size:70%" + ">" + Answers[j] + "</td>";
            }
            string += "</tr>";
        }  

然后我得到2行,可以,4列,可以,但是两行具有相同的值:(确保我需要第一行是前4个元素,第二行是后4个元素。 Please click here to check the 2nd result

您能帮我吗?我猜我需要以某种方式修改/扩展Answers [l]部分,以获取前4个,然后获取下一个。 非常感谢您的帮助!谢谢!

2 个答案:

答案 0 :(得分:0)

您必须考虑Answers数组中的行索引。对于每个新行,索引必须增加arrayLength。 答案[k * arrayLength + j] 应该可以解决问题

for (var k = 0; k < rowLength; k++) {
    string += "<tr>";
    for (var j = 0; j < arrayLength; j++) {
        string += "<td style=" + "width: 5%; font-size:70%" + ">" + Answers[k*arrayLength + j] + "</td>";
    }
    string += "</tr>";
} 

答案 1 :(得分:0)

尝试以下操作:

var length = i = 0;
for (var k = 0; k < rowLength; k++) {
     length+=arrayLength;
     string += "<tr>";
     for (var j = i; j < length; j++) {
          string += "<td style=" + "width: 5%; font-size:70%" + ">" + Answers[j] + "</td>";
     }
     string += "</tr>";
     i+=arrayLength;   
 }