Tell us what’s happening:
Describe your issue in detail here.
It took a long time but I did it, criticize my code please I want to improve
Your code so far
function checkCashRegister(price, cash, cid) {
const denomination = [
["ONE HUNDRED", 100.00],
["TWENTY", 20.00],
["TEN", 10.00],
["FIVE", 5.00],
["ONE", 1.00],
["QUARTER", 0.25],
["DIME", 0.10],
["NICKEL", 0.05],
["PENNY", 0.01]
]
let change = cash - price;
parseFloat(change.toFixed(2))
let funds = parseFloat(cid.reduce((acc,elem)=> acc+=elem[1],0.0).toFixed(2))
let cidInverso = cid.slice().reverse();
if ( change === funds) {
return {status: "CLOSED", change: cid }
}
let results = {
status : "OPEN",
change : []
}
for (let i in cidInverso){
if(change/denomination[i][1]>=1){
let acumulador = 0.00;
while(cidInverso[i][1]>0.00 && change > 0 &&change/denomination[i][1]>=1){
//console.log("change",change)
//console.log(denominationReverse[i][1])
cidInverso[i][1] = cidInverso[i][1] - denomination[i][1];
//console.log(denomination[i][0],(change/denomination[i][1]
//console.log("denominacion",denomination[i][1])
change = parseFloat((change - denomination[i][1]).toFixed(2))
acumulador += denomination[i][1];
//console.log("saldo caja",cidInverso[i][1])
console.log({"saldo caja":cidInverso[i][1],
"change":change},"-",denomination[i][1])
}
console.log(acumulador)
results.change.push([denomination[i][0],acumulador])
}
}
if( funds<change | change!== 0){
return {
status:"INSUFFICIENT_FUNDS", change: []
}
}
return results;
}
console.log(checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]]))
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Challenge: JavaScript Algorithms and Data Structures Projects - Cash Register
Link to the challenge: