我正在制作一个需要阅读10首歌曲名称和每首歌曲5个等级的应用程序。我觉得每个歌曲都有一个阵列可以存储名称和5个不同的评级,但我不知道如何使用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);
}
}
答案 0 :(得分:4)
我建议你有一个对象数组,每个对象包含一个标题和一个等级数组,给你一个如下所示的结构:
[
{
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);
}
}