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

Iterate through an array and concatenate another array all the values before next iteration of first array?

本文关键字:数组 一个 连接 遍历 另一个 第一个 一次 迭代      更新时间:2023-09-26

我正在尝试构建一个Url列表。结构如下:http://somedomain.com/game_CATEGORY?page=NUMBER.

我有一系列的游戏类别,从动作游戏类别到文字游戏类别。

我有一组数字,从1到20。

我有一些url保存为字符串。

我已经试着用这种方式将它们组合了一天:

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个数字,然后转到下一个类别。

您需要在第二个循环中嵌套另一个for循环。类似于:

for (var i = 0; i < madeUrl1.length; i++) {
    for (int j = 0; j < nums.length; j++) {
        madeUrl2.push(madeUrl1[i]+nums[j]);
    }
};

这样,您就可以遍历在madeUrl1中准备的基本URL,然后对其中的每一个都遍历数组中的每个数字。

如果数字只是从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);
    }
};

您可以使用以下代码:

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