Я пытаюсь добавить элемент в объект js - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь выдвинуть пары ключ-значение к объекту. пары ключ-значение должны быть добавлены к определенному индексу, который задается e.vatRecord.debit. Эта переменная работает правильно, если я войду в консоль. Но в комбинации это не работает.

journalByAccounts = {}; // define an object
  data.entries.forEach(function(e) {
    journalByAccounts[e.vatRecord.debit].push({
      valuta: e.valuta,
      text: e.text,
      debit: e.mainRecord.amount
    });
  });

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Либо сначала вам нужно инициализировать объект journalByAccounts[e.vatRecord.debit] пустым массивом [], потому что вы не можете вставить undefined (ожидая, что он волшебным образом станет массивом):

journalByAccounts = {};
data.entries.forEach(function(e) {
    if (!journalByAccounts[e.vatRecord.debit])
        journalByAccounts[e.vatRecord.debit] = [];

    journalByAccounts[e.vatRecord.debit].push({
        valuta: e.valuta,
        text: e.text,
        debit: e.mainRecord.amount
    });
});

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 101 '*'

** * * * * * * * * * * * * * * *1012* Или , если вы на самом деле не хотите массив, тогда вам следует выполнить присваивание:

journalByAccounts[e.vatRecord.debit] = {
  valuta: e.valuta,
  text: e.text,
  debit: e.mainRecord.amount
};
0 голосов
/ 30 октября 2019
journalByAccounts = []; // define an object

Вы должны определить пустой массив, а не объект.

...