There is an error in the last part of the code that I can’t find. it is the part that calls the code, the part freeCodeCamp wrote. if anyone sees it let me know, please.
Your code so far
const REGISTER_STATUS = {closed :'Closed', insufficientFunds: 'INSUFFICIENT_FUNDS', open: 'Open'
}
function checkCashRegister(price, cash, cid) {
let cashRegister = {status: '', change: cid};
const changeNeeded = parseFloat(cash - price).tofixed(2);
const changeAvailable =getTotalCashRegisterChange(cid);
cashRegister.status =getTotalCashRegisterStatus(changeNeeded, changeAvailable);
If (cashRegister.status === REGISTER_STATUS.insufficientFunds); {
cashRegister.change= [];
return cashRegister;
}
cashResgister.change=getCustomersChange(changeNeeded, cid);
if (changeNeeded > getTotalCashRegisterChange(changeRegister.change)){cashRegister.status = REGISTER_STATUS.insufficientFunds;
cashRegister.change = [];
}
if (cashRegister.status === REGISTER_STATUS.close){
cashRegister.change = [...cid]
}
return cashRegister;
}
function getCustomersChange(changeNeeded, changeInDrawer){
const change = [];
const currencyDictionary ={
"PENNY" : 0.01,
"NICKEL" : 0.05,
"DIME" : 0.10,
"QUARTER" : 0.25,
"ONE" : 1.00,
"FIVE" : 5.00,
"TEN" : 10.00,
"TWENTY" : 20.00,
"ONE HUNDRED" : 100.00
};
for (let i =changeInDrawer.length - 1; i>= 0; i--) {
const coinName = changeInDrawer[i][0];
const coinTotal = changeInDrawer [i][1];
const coinValue = currencyDictionary[coinName];
let coinAmount = (coinTotal/ coinValue).tofixed(2);
let coinToReturn = 0;
while(changeNeeded >= coinValue && coinAmount > 0){
changeNeeded -= coinValue;
changeneeded = changeNeeded.toFixed(2);
coinAmount --;
coinToReturn ++;
}
if (coinToReturn > 0) {
change.push([coinName, coinToReturn * coinValue]);
}
}
return change;
}
function getTotalCashRegisterStatus(changeNeeded, changeAvailable){
if(Number(changeNeeded) > Number(changeAvailable)){
return REGISTER_STATUS.insufficientFunds;
if (Number(changeNeeded) > Number(changeAvailable)) {
return Register_status.open;
}
return REGISTER_STATUS.closed;
}
function getTotalCashRegisterChange(changeInDrawer) {
let total = 0;
for (let change of changeInDrawer){
let changeValue = change(1);
total += changeValue;
}
return total.toFixed(2);
}
checkCashRegister(19.5, 20, [["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 6.1; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
.
Challenge: Cash Register
Link to the challenge: