Hey all,
I’m having issues with my JS switch statement within my cash register app. This function calculates how much change to return, but it is only returning the default.
function returnCoins(coinChange){
let changeArr = [];
switch(coinChange){
case (coinChange < .05): changeArr.push(["PENNY", coinChange]); break;
case (coinChange >= .05 && coinChange < .1): changeArr.push([["NICKEL", 0.05], ["PENNY", (coinChange - 0.05)]]); break;
case (coinChange >= .1 && coinChange < .15): changeArr.push([["DIME", 0.1],["PENNY", (coinChange - 0.1)]]); break;
case (coinChange >= .15 && coinChange < .2): changeArr.push([["DIME", 0.1], ["NICKEL", 0.05], ["PENNY", (coinChange - 0.15)]]); break;
case (coinChange >= .2 && coinChange < .25): changeArr.push([["DIME", 0.2], ["PENNY",(coinChange - 0.2)]]); break;
case (coinChange >= .25 && coinChange < .3): changeArr.push([["QUARTER", 0.25], ["PENNY", (coinChange - 0.25)]]); break;
case (coinChange >= .3 && coinChange < .35): changeArr.push([["QUARTER", 0.25], ["NICKEL", 0.05], ["PENNY", (coinChange - .3)]]); break;
case (coinChange >= .35 && coinChange < .4): changeArr.push([["QUARTER", 0.25], ["DIME", 0.1], ["PENNY", (coinChange - 0.35)]]); break;
case (coinChange >= .4 && coinChange < .45): changeArr.push([["QUARTER", 0.25], ["DIME", 0.1], ["NICKEL", 0.05], ["PENNY", (coinChange - .4)]]); break;
case (coinChange >= .45 && coinChange < .5): changeArr.push([["QUARTER", 0.25], ["DIME", 0.2], ["PENNY", (coinChange - 0.45)]]); break;
case (coinChange >= .5 && coinChange < .55): changeArr.push([["QUARTER", 0.50], ["PENNY", (coinChange - .5)]]); break;
case (coinChange >= .55 && coinChange < .6): changeArr.push([["QUARTER", 0.50], ["NICKEL", 0.05], ["PENNY", (coinChange - 0.55)]]); break;
case (coinChange >= .6 && coinChange < .65): changeArr.push([["QUARTER", 0.50], ["DIME", 0.1], ["PENNY", (coinChange - .6)]]); break;
case (coinChange >= .65 && coinChange < .7): changeArr.push([["QUARTER", 0.50], ["DIME", 0.1], ["NICKEL", 0.05], ["PENNY", (coinChange - 0.65)]]); break;
case (coinChange >= .7 && coinChange < .75): changeArr.push([["QUARTER", 0.50], ["DIME", 0.2], ["PENNY", (coinChange - .7)]]); break;
case (coinChange >= .75 && coinChange < .8): changeArr.push([["QUARTER", 0.75], ["PENNY", (coinChange - 0.75)]]); break;
case (coinChange >= .8 && coinChange < .85): changeArr.push([["QUARTER", 0.75], ["NICKEL", 0.05], ["PENNY", (coinChange - 0.8)]]); break;
case (coinChange >= .85 && coinChange < .9): changeArr.push([["QUARTER", 0.75], ["DIME", 0.1], ["PENNY", (coinChange - 0.85)]]); break;
case (coinChange >= .9 && coinChange < .95): changeArr.push([["QUARTER", 0.75], ["DIME", 0.1], ["NICKEL", 0.05], ["PENNY", (coinChange - 0.9)]]); break;
case (coinChange >= .95 && coinChange < .99): changeArr.push([["QUARTER", 0.75], ["DIME", 0.2], ["PENNY", (coinChange - 0.95)]]); break;
default: changeArr.push(["PENNY", coinChange]); break;
}
return changeArr;
}
let finChange = returnCoins(changeDue);
console.log(finChange);
I know there are much more elegant ways to do this, but I’m trying to figure out why my switch cases are not being read. Can anyone explain this to me?