gpt4 book ai didi

javascript - 如何在 JavaScript 中从数组中提取多个元素?

转载 作者:行者123 更新时间:2023-12-02 21:40:53 25 4
gpt4 key购买 nike

因此,我正在开展一个学校项目,以创建一个“钢琴”,它将演奏在特定时间开始的音符并返回如下所示的输出:

    Outputs:
Play A
Play B
Wait 1.5 seconds
Play C
Wait 1.5 seconds
Release A
Release B
Release C

诸如此类。我能够对开始时间进行排序,但我不知道如何编写一些可以转换为我需要的输出的内容。当格式为 note:“A”时,我不知道如何拉出注释。我希望写一些东西,可以按顺序拉出从 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)

最佳答案

我认为你可以在对数组进行排序后进行归约以构建字符串值。

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}`;
}, '');

关于javascript - 如何在 JavaScript 中从数组中提取多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60367213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com