使用for循环动态创建数组

时间:2015-06-13 13:34:00

标签: javascript

我正在制作一个需要阅读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);   
    }  
}

1 个答案:

答案 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);
  }
}