Как прибавлять к ключу объекта + 1?

Здрасьте, тут (аудиоплеер) нужна функция которая меняет картинку композиций по очереди, типо прибавляет один. Как написать эту функция и можно если у ключа объекта наприм. cover1, cover2 с логикой + 1 как то получить эту функцию.

let songs = [{
    name: 'TKN',
    src: './assets/songs/ROSALÍA, Travis Scott - TKN.mp3',
    cover1: './assets/images/rosalia-tkn.jpg',
    artist: 'ROSALÍA, Travis Scott',
    lyrics: ''
},{   
    name: 'No Heart',
    src: './assets/songs/21 Savage & Metro Boomin - No Heart.mp3',
    cover2: './assets/images/no-heart.jpg',
    artist: '21 Savage, Metro Boomin',     
    lyrics: ''
}];



let songIndex = 0;

function loadSong(song) {
  song_info.innerHTML = song;
  audio.src = songs.src;
  song_wrap = songs.cover; //index + 1
}

loadSong(song[songIndex]);

Ответы (1 шт):

Автор решения: EzioMercer

К свойствам объекта можно обращаться не только с помощью точки. Можно использовать квадратные скобки, где можно составлять нужную строку, т.е. название свойства:

let songs = [{
    name: 'TKN',
    src: './assets/songs/ROSALÍA, Travis Scott - TKN.mp3',
    cover1: './assets/images/rosalia-tkn.jpg',
    artist: 'ROSALÍA, Travis Scott',
    lyrics: ''
},{   
    name: 'No Heart',
    src: './assets/songs/21 Savage & Metro Boomin - No Heart.mp3',
    cover2: './assets/images/no-heart.jpg',
    artist: '21 Savage, Metro Boomin',     
    lyrics: ''
}];



let songIndex = 0;

function loadSong(song) {
  //song_info.innerHTML = song;
  //audio.src = songs.src;
  //song_wrap = songs[`cover${++songIndex}`]; //index + 1
  
  return song[`cover${++songIndex}`];
}

console.log(loadSong(songs[songIndex]));
console.log(loadSong(songs[songIndex]));

→ Ссылка