创建最短的项目列表(js 数组),每个项目都以给定的频率出现

问题描述 投票:0回答:0

假设我有一个嵌套数组“playlistItems”,数组中的每个项目都有一个数组,包括: 轨道 ID(数字,唯一) 曲目标题(字母数字) 轨道长度(数字,以秒为单位) 曲目频率(数字,曲目每小时播放的次数) Provide Extra Plays(真,假 - 曲目是否应该用于填补生成的播放列表中的空白,即它会获得比指定更高的频率)

    let playlistItems = [
      [354, 'This Song', 10, 60, TRUE],
      [261, 'That Song', 10, 10, TRUE],
      [854, 'Another Song', 10, 10, FALSE],
      [563, 'Your Song', 20, 10, FALSE],
      [729, 'Their Song', 10, 30, FALSE]
    ];

我想从这个数组中生成一个新的随机数组(一个播放列表),它是给定轨道频率下的最短项目列表: 轨道位置(数字,唯一 - 播放列表中的轨道位置) 曲目 ID(数字)

    let generatedPlaylist = [
      [001, 261],
      [002, 563],
      [003, 354],
      [004, 729],
      [005, 354],
      [006, 729],
      [007, 563],
      [008, 354],
      [009, 729],
      [010, 261],
      [011, 354]
      etc...etc....
    ];

出于这个论点的目的,我们假设每个曲目将在前一个曲目之后直接播放,没有延迟(即 10 秒内的 6 个项目将持续 1 分钟),尽管如果有一种方法可以考虑这样的因素会很好延迟整体计算,以便仍然达到给定的频率。

另一个愿望清单项目是没有项目连续播放两次。

javascript arrays random frequency playlist
© www.soinside.com 2019 - 2024. All rights reserved.