2015-11-05 17 views
0

我試圖建立一個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個號碼,然後轉到下一個類別。

+1

嵌套你的循環 – Ryan

回答

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準備,然後爲每個你通過你的每個陣列中有數量迭代的基本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); 
    } 
}; 
+0

不錯。這就是我昨天試過的,但我一直認爲我需要從第一個循環返回一個值,以便讓第二個循環獲取它的數據。感謝您向我展示正確的方式。希望我可以自己弄清楚這一點! – EasyCodeTime

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次,將每個數字附加到頁面上。完成後,它繼續到第二個類別等等。

+0

該死的,嵌套是我嘗試的第一件事,但我沒有正確設置它。謝謝。 – EasyCodeTime

+0

很高興我能幫助你。如果這是您的正確答案,請使用此答案頂部的複選圖標標記爲正確,並/或將其投票。乾杯。 –

相關問題