我有一个二维数组(affiliates),其中每个数组项都包含一个图像URL和一个链接URL。 randArray只是生成的随机数列表(不重复),该列表与affiliates的长度匹配。

我已经到了可以成功为随机图像/ URL组合生成HTML字符串的地步。

(以上内容可能比需要的更多,但是我想提供一些背景知识。)

我想做的是将每三个迭代分组在一起,并包装在<p>标记中。我尝试在当前循环中执行嵌套循环,但只能到达将同一行中的三行包装在<p>标记中的位置,而我需要它们是三行连续。我觉得这应该很容易,但是我很沮丧。任何帮助将非常感激。

for(var y=0; y < randArray.length; y++) {

    var image = affiliates[randArray[y]][0];
    var url = affiliates[randArray[y]][1];

    var fullString = '<a href="' + url + '"><img src="' + image + '"></a>';
    console.log(fullString);

}

最佳答案

在循环中,y % 3 == 0在第一次迭代时将为true,在其后的第三次迭代时为true,因此在<p>时输出y % 3 == 0,在</p>时输出y % 3 == 2,在循环后输出length % 3 != 0

但是嵌套循环可能更容易实现和维护:

var x, image, url;
var fullString = "";
var y = 0;
while (y < randArray.length) {

    fullString += '<p>';
    for (x = 0; x < 3 && y < randArray.length; ++x, ++y) {
        image = affiliates[randArray[y]][0];
        url = affiliates[randArray[y]][1];
        fullString += '<a href="' + url + '"><img src="' + image + '"></a>';
    }
    fullString += '</p>';
}

关于javascript - 在遍历数组时包装每​​三个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27277066/

10-08 22:01
查看更多