Tell us what’s happening:
Your code so far
var money = [
{ name: 'ONE HUNDRED', value: 100.00 },
{ name: 'TWENTY', value: 20.00 },
{ name: 'TEN', value: 10.00 },
{ name: 'FIVE', value: 5.00 },
{ name: 'ONE', value: 1.00 },
{ name: 'QUARTER', value: 0.25 },
{ name: 'DIME', value: 0.10 },
{ name: 'NICKEL', value: 0.05 },
{ name: 'PENNY', value: 0.01 }
];
function checkCashRegister(price, cash, cid) {
// calculate how much change we owe the customer
var change = cash - price,
till = cid.reduce(function (a, b) {
return a + b[1];
}, 0.0).toFixed(2);
if (till < change) {
return "INSUFFICIENT_FUNDS";
} else if (till == change) {
return "CLOSED";
}
cid = cid.reverse();
var result = money.reduce(function (acc, next, index) {
if (change >= next.value) {
var currentValue = 0.0;
while (change >= next.value && cid[index][1] >= next.value) {
currentValue += next.value;
change -= next.value;
change = Math.round(change * 100) / 100;
cid[index][1] -= next.value;
}
acc.push([next.name], currentValue);
return acc;
}
else {
return acc;
}
}, []);
return result.length > 0 && change === 0 ? result : "Insufficient Funds";
}
checkCashRegister(19.50, 20.00, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.10], ["QUARTER", 4.25], ["ONE", 90.00], ["FIVE", 55.00], ["TEN", 20.00], ["TWENTY", 60.00], ["ONE HUNDRED", 100.00]]);
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
.
Link to the challenge: