如何在Javascript中从数组中提取多个元素?

如何在Javascript中从数组中提取多个元素?,javascript,Javascript,因此,我正在进行一个学校项目,创建一个“钢琴”,它将播放在特定时间开始的音符,并返回如下输出: Outputs: Play A Play B Wait 1.5 seconds Play C Wait 1.5 seconds Release A Release B Release C 诸如此类。我能够对开始时间进行排序,但我不知道如何编写能够转换为所需输出的内容。当格式为note:“A”时,我不确定如何提取note。我希望能

因此,我正在进行一个学校项目,创建一个“钢琴”,它将播放在特定时间开始的音符,并返回如下输出:

    Outputs:
    Play A
    Play B
    Wait 1.5 seconds
    Play C
    Wait 1.5 seconds
    Release A
    Release B
    Release C
诸如此类。我能够对开始时间进行排序,但我不知道如何编写能够转换为所需输出的内容。当格式为note:“A”时,我不确定如何提取note。我希望能写一些东西,把从0,1,2开始的音符按顺序拉出来,告诉他们播放一段时间,然后释放。我真的不知道该怎么问这个问题

    let piano=[
      {note: 'Ab', starts_at: 0},
      {note: 'A', starts_at: 5},
      {note: 'A#', starts_at: 10},
      {note: 'Bb', starts_at: 7},
      {note: 'B', starts_at: 4},
      {note: 'C', starts_at: 8},
      {note: 'C#', starts_at: 13},
      {note: 'Db', starts_at: 2},
      {note: 'D', starts_at: 0},
      {note: 'D#', starts_at: 5},
      {note: 'Eb', starts_at: 1},
      {note: 'E', starts_at: 11},
      {note: 'F', starts_at: 3},
      {note: 'F#', starts_at: 2},
      {note: 'Gb', starts_at: 9},
      {note: 'G', starts_at: 10},
      {note: 'G#', starts_at: 1}
    ];


    let my_song=piano.sort((elem_1, elem_2,) =>{
      if (elem_1.starts_at == elem_2.starts_at){
        return 0;
      } else if (elem_1.starts_at >= elem_2.starts_at){
        return 1;
      }
     return -1;
    });
    console.log(my_song)

我认为在对数组进行排序以构建字符串值之后,可以使用reduce

const str = piano.reduce((acc, curr, i, arr)=>{
  const prev = arr[i - 1];
  if(prev) {
    const diff = curr.starts_at - prev.starts_at;
    acc += `\nWait ${diff} seconds`;
  }
  acc += `\nPlay ${curr.note}`;
}, '');

按键需要多长时间?您好,我不知道您是否理解得很好,但请注意,您需要的是一份关于以前所做工作的报告。我的意见是,您应该设置一个自定义日志来接收这些报告