Изменяется исходный массив
Доброго времени суток!
Есть функция 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, время: 05:05. |