Tell us what’s happening:
Your code so far
function checkCashRegister(price, cash, cid) {
// The change amount change
let change = cash-price
let totalCid = 0
let status = {status:'', change: []}
// set up an Array for all your domination and values...
var cidObj = [
{ name: 'PENNY', value: 0.01},
{ name: 'NICKEL', value: 0.05},
{ name: 'DIME', value: 3.1},
{ name: 'QUARTER', val: 4.25},
{ name: 'ONE', value: 1.00},
{ name: 'FIVE', value: 5.00},
{ name: 'FIVE', value: 5.00},
{ name: 'FIVE', value: 5.00},
{ name: 'TWENTY', value: 60.00},
{ name: 'ONE HUNDRED', val: 100.00},
];
// Total in cid
for (let i = 0 ; i < cid.length; i++){
totalCid += cid[i][1]
}
totalCid = Math.round(totalCid * 100) / 100;
if (change === totalCid){
status.status = "CLOSED"
status.change = cid
return status
}
else if (totalCid < change){
status.status = "INSUFFICIENT_FUNDS"
status.change = []
}
else {
for (let i = cid.length-1 ; i >= 0; i--){
if (change >= cidObj[cid[i][0]] && change >= cid[i][1]){
status.change.push(cid[i])
change -= cid[i][1]
change = Math.round(change *100)/100
} else if (change >= cidObj[cid[i][0]] && change < cid[i][1]){
let amount = Math.floor(change/cidObj[cid[i][0]])*cidObj[cid[i][0]]
status.change.push([cid[i][0], amount])
change -= amount
change = Math.round(change *100)/100
}
}
}
if (change >= .01){
status.status = "INSUFFICIENT_FUNDS"
status.change = []
} else {
status.status = "OPEN"
}
return status;
}
checkCashRegister(19.50, 20.00, [["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/73.0.3683.103 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register