2015-06-13 109 views
-1

我正在製作一個應用程序,每首歌曲需要讀取10首歌曲名稱和5個評級。我有一個數組爲每首歌將存儲名稱和5個不同的評級將是理想的,但我不知道如何動態創建一個for循環的數組。有任何想法嗎?下面是一個示例:使用for循環動態創建數組

for (var song = 1; song < 11; song++) { 
    prompt("Give song title, No:" + " " + song); 
    for (var i = 1; i < 8; i++) { 
     prompt("Give song No:" + " " + song + " " + ", rating:" + i); 
    } 
} 
+2

@Alex,爲什麼在世界上你需要一個for循環和數組的jQuery? – epascarello

+0

最有可能的數據結構是單個數組,每首歌有一個元素。每首歌曲元素都是一個屬性爲「name」和「ratings」的對象,其中「ratings」是一個五元素數組。您可以通過創建該數組來創建該數組,然後每次通過循環將新元素推送到該數組上。 –

回答

3

我建議你有對象,每個對象包含一個標題和收視率的數組的數組,讓你看起來像這樣的結構:

[ 
    { 
    title: "First song", 
    ratings: [ 5, 3, 4, 1, 4 ] 
    }, 
    { 
    title: "Second song", 
    ratings: [ 2, 3, 2, 1, 1 ] 
    } 
] 

首先創建數組,然後爲每首歌曲創建一個對象爲空的數組進行評級。然後你可以把這個數組中的評級:

var songs = []; 
for (var song = 0; song < 10; song++) { 
    var title = prompt("Give song title, No: " + song); 
    songs[song] = { 
    title: title, 
    ratings: [] 
    }; 
    for (var i = 1; i <= 5; i++) { 
    var rating = prompt("Give song No: " + song + " , rating:" + i); 
    songs[song].ratings.push(rating); 
    } 
} 
+0

非常感謝你,還有一個問題。例如,如何提醒第二首歌的第一個評價。 – Theof

+1

@Theof:第二首歌曲是'songs [1]',並且該歌曲的評分是'songs [1] .ratings',因此將會是alert(歌曲[1] .ratings [0]);'。 – Guffa