我正在尝试构建一个Urls列表。结构是这样的: http://somedomain.com/game_CATEGORY?page=NUMBER
我有一系列游戏类别,从动作游戏类别到文字游戏类别。
我有一系列数字,1到20。
我将网址的各个部分保存为字符串。
我一直试图以这种方式将它们组合起来:
cats = ["action","adventure","arcade","board","card","casino","casual","educational","family","music","puzzle","racing","role_playing","simulation","sports","strategy","trivia","word"],
nums = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
urlString1 = "http://example.com/game_",
urlString2 = "?page=",
madeUrl1 = [],
x = 1, // counter for page numbers
madeUrl2 = [];
for (var i = 0; i < cats.length; i++) {
madeUrl1.push(urlString1+cats[i]+urlString2);
};
for (var i = 0; i < madeUrl1.length; i++) {
madeUrl2.push(madeUrl1[i]+x);
x++;
};
console.log(madeUrl2);
这让我部分到了。但它每个类别打印出一个数字。我需要每个类别打印输出添加所有20个数字,然后转到下一个类别。
答案 0 :(得分:1)
您需要在第二个循环中嵌套另一个for
循环。类似的东西:
for (var i = 0; i < madeUrl1.length; i++) {
for (int j = 0; j < nums.length; j++) {
madeUrl2.push(madeUrl1[i]+nums[j]);
}
};
通过这种方式,您可以遍历在madeUrl1
中准备好的基本网址,然后为每个重复遍历数组中每个数字的网址。
如果数字只是从1到20连续,你甚至不需要nums
数组:
for (var i = 0; i < madeUrl1.length; i++) {
for (var x = 1; x <= 20; x++) {
madeUrl2.push(madeUrl1[i]+x);
}
};
整个过程可以通过一个嵌套的for
循环完成:
for (var i = 0; i < cats.length; i++) {
for (var x = 1; x <= 20; x++) {
madeUrl1.push(urlString1+cats[i]+urlString2+x);
}
};
答案 1 :(得分:0)
您可以使用以下代码:
cats = ["action","adventure","arcade","board","card","casino","casual","educational","family","music","puzzle","racing","role_playing","simulation","sports","strategy","trivia","word"],
nums = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
urlString1 = "http://example.com/game_",
urlString2 = "?page=",
madeUrl1 = [],
x = 1;
for (var i = 0; i < cats.length; i++) {
for (var j = 0; j < nums.length; j++) {
madeUrl1.push(urlString1+cats[i]+urlString2+nums[j]);
x++;
};
};
console.log(madeUrl1);
我们在这里做的是先嵌套我们的循环。例如,它将首先遍历第一个数组,当它到达第一个项目时,在这种情况下是一个类别,它将运行嵌套循环20次,将每个数字附加到页面。完成后,它继续到第二类,依此类推。