Javascript: Pu sh объект в массив внутри другого массива по ключу внутреннего массива - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть массив месяцев, который содержит 12 динамически создаваемых объектов на следующие 12 месяцев

 months = [
    {2020-02: Array(0)}
    {2020-03: Array(0)}
    {2020-04: Array(0)}
    {2020-05: Array(0)}
    {2020-06: Array(0)}
    {2020-07: Array(0)}
    {2020-08: Array(0)}
    {2020-09: Array(0)}
    {2020-10: Array(0)}
    {2020-11: Array(0)}
    {2020-12: Array(0)}
    {2021-01: Array(0)}
    ];

Я хочу вставить объект в массив объекта на основе ключа Dynami c, основанного на другой массив (исходные данные).

I l oop через исходные данные, и каждый объект в массиве исходных данных имеет ключ media_date и значение 2020-02;

I тогда создать объект для вставки в массив месяцев

var person = new Object();
person.title = 'job title';
person.name = 'cool name';

Я хочу вставить объект person в массив месяцев в объект с ключом 2020-02

Я пробовал что-то вроде:

$.each(source,function(i,data){
    var person = new Object();
    person.title = data.job_title;
    person.name = data.name;
  var key = data.monthyear (2020-02)
  months.[key].push(person);
});

Но я получаю

TypeError: Невозможно прочитать свойство 'pu sh' из неопределенного в ...

Спасибо за любые помощь, которую вы можете оказать!

1 Ответ

1 голос
/ 27 февраля 2020

Предполагая, что массив месяцев:

months = [
{'2020-02': Array(0)},
{'2020-03': Array(0)},
{'2020-04': Array(0)},
{'2020-05': Array(0)},
{'2020-06': Array(0)},
{'2020-07': Array(0)},
{'2020-08': Array(0)},
{'2020-09': Array(0)},
{'2020-10': Array(0)},
{'2020-11': Array(0)},
{'2020-12': Array(0)},
{'2021-01': Array(0)}
];

findMonth = '2020-02';

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

  • index = months.findIndex(x => Boolean(x[findMonth]))
  • index = months.findIndex(x => Object.keys(x)[0] === findMonth)

, затем используйте следующие значения для pu sh при значении ключа months[index][findMonth].push(person)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...