在第一个数组的下一次迭代之前迭代一个数组并连接另一个数组的所有值?

时间:2015-11-05 18:47:45

标签: javascript arrays loops

我正在尝试构建一个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个数字,然后转到下一个类别。

2 个答案:

答案 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次,将每个数字附加到页面。完成后,它继续到第二类,依此类推。

相关问题