使用 for 循环动态创建数组

Creating Arrays Dynamically with a for loop

本文关键字:创建 数组 动态 循环 for 使用      更新时间:2023-09-26

我正在制作一个应用程序,需要读取每首歌曲 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);   
    }  
}

我建议你有一个对象数组,其中每个对象包含一个标题和一个评级数组,给你一个看起来像这样的结构:

[
  {
    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);
  }
}