here is my complete code:
var newObj = [];
var denomination = [0.01,0.05,0.10,0.25,1.00,5.00,10.00,20.00,100.00];
function getChange(change, cid){
var denom = 0;
var index = 0;
var multiplier = 0;
var availableCash = 0;
var remainingChange = 0;
for (var i = denomination.length; i >= 0; i--){
if (change/denomination[i] >=1){
denom = denomination[i];
index = i;
multiplier = Math.round(change/denomination[i]);
availableCash = cid[i][1];
break;
}
}
console.log("denom " + denom);
console.log("multiplier " + multiplier);
console.log("available Cash " + availableCash);
denomination.splice(i,1);
if (availableCash > change){
**remainingChange = parseFloat( (change - denom*multiplier).toFixed(2));**
//console.log(typeof(remainingChange));
} else if (availableCash < change){
remainingChange = change - availableCash
} else if (availableCash == change && change - availableCash === 0){
return "Closed"
}
**if (remainingChange === 0 || isNaN(remainingChange)){**
** console.log("here I am");**
** return "Great Job, Exact Change Available"**
** } else {**
** getChange(remainingChange,cid);**
** }**
}
function checkCashRegister(price, cash, cid){
var change = parseFloat((cash - price).toFixed(2));
var result = getChange(change,cid);
**console.log(result);**
}
checkCashRegister(19.50, 21.52, [["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]]);
Please refer to the blocked lines (marked with )
My question/issue is when I do console.log(result) I get undefined. Even though its prints “Here I am”. However if i change
**remainingChange = parseFloat( (change - denommultiplier).toFixed(2));**
to remainingChange = 0; then console.log(result); prints “Great Job, Exact Change Available”
I am totally lost here… can someone please help me understand what is happening here and how to fix it. Any help is greatly appreciated Thanks.