Показать сообщение отдельно
  #1 (permalink)  
Старый 03.03.2022, 12:54
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

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