Изменяется исходный массив
Доброго времени суток!
Есть функция checkCashRegister, где price - цена покупки, cash - оплата покупки, cid - наличность в кассе
function checkCashRegister(price, cash, cid) {
let exchange = [...cid]
for (let i = 0; i < exchange.length; i++) {
//здесь в exchange пушу полученные результаты
}
}
cid приходит в виде массива с массивами
[
["PENNY", 0.5],
["NICKEL", 0],
["DIME", 0],
["QUARTER", 0],
["ONE", 0],
["FIVE", 0],
["TEN", 0],
["TWENTY", 0],
["ONE HUNDRED", 0]
]
В самом начале копирую массив в let exchange Далее в цикле работаю с массивом exchange и пушу в него значения. В итоге нужно вернуть исходный cid, а он возвращается измененный. Подскажите, каким образом скопировать cid и не менять его? Варианты, какие были испробованы, но cid всё равно изменяется: let exchange = [...cid] let exchange = cid.slice() let exchange = cid.concat() let exchange = Array.from(cid) let exchange = JSON.parse(JSON.stringify(cid)) |
_marisha,
элементы вашего массива нужно дублировать! let exchange = cid.map( a => a.slice(0)); |
Цитата:
let exchange = JSON.parse(JSON.stringify(cid)) |
Цитата:
|
| Часовой пояс GMT +3, время: 02:04. |