Построение массива объектов с помощью цикла - PullRequest
0 голосов
/ 24 февраля 2020

Можно ли построить следующую переменную с помощью al oop?

let mp3list = [
  {
    name: "Minuetto A",
    path: "assets/music/minuettoA.mp3"
  },
  {
    name: "Minuetto B",
    path: "assets/music/minuettoB.mp3"
  },
  {
    name: "Minuetto C",
    path: "assets/music/minuettoC.mp3"
  },
  {
    name: "Minuetto D",
    path: "assets/music/minuettoD.mp3"
  },
  {
    name: "Minuetto E",
    path: "assets/music/minuettoE.mp3"
  },
  {
    name: "Minuetto F",
    path: "assets/music/minuettoF.mp3"
  } // etc
];

Это выглядит так «по шаблону», что, я думаю, должен быть способ! Мне интересно знать! :)

1 Ответ

2 голосов
/ 24 февраля 2020

Конечно, но где-то вам понадобится алфавит. Возможно .map () - самое чистое решение

Array.prototype.map ()

let alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']; // and so on

let mp3list = alphabet.map( item => {
    return {
      name: `Minuetto ${item}`,
      path: `assets/music/minuetto${item}.mp3`
    };
});
console.log(mp3list);

или с ES6 Array.prototype.forEach ()

let alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']; // and so on
let mp3list = [];

alphabet.forEach( item => {
  mp3list.push(
    {
      name: `Minuetto ${item}`,
      path: `assets/music/minuetto${item}.mp3`
    }
  );
});
console.log(mp3list);

или старой школы Array.prototype.forEach () с конкатенацией строк

let alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']; // and so on
let mp3list = [];
alphabet.forEach(function(item){
  mp3list.push(
    {
      name: "Minuetto " + item,
      path: "assets/music/minuetto"+item+".mp3"
    }
  );
});
console.log(mp3list);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...