Мне нужно скопировать объект из данного массива, изменить некоторые значения и отправить его обратно в массив как новое значение.
//array:
entries[
{id: "1234", credit: "2000", debit: "3000"},
{id: "1235", credit: "2000", debit: "3000"},
{id: "1236", credit: "2000", debit: "3000"}
]
Я сделал следующее: я отфильтровал массивдля поиска объекта.
result = entries.filter(entry => entry.id == id);
Скажем, я получил объект с идентификатором 1235 в результате массива обратно в качестве первого значения. Объект находится здесь: result[0]
.
Теперь мне нужна копия из этого массива, переключить кредитные и дебетовые значения и отправить ее обратно в массив записей как новый элемент.
Я пробовал это до сих пор, но это не работает:
Object.assign(newObj, oldObj);
newObj.debit = result[0].credit;
newObj.credit = result[0].debit;
newObj.id = getNewEntryId(data); // here I get an new id which is free - works fine so far
entries.push(newObj);
Новые и старые объекты меняются. Я думаю, что assign делает не копию, а ссылку. Какую функцию выбрать? Или как эта проблема решается нормально?