Доброго времени суток!
Есть функция 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))