我有一个二维数组(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/