Tell us what’s happening:
the code works in three cases and two cases doen’t work
Your code so far
var denom=[
{name:"one Hundred",val:100.00},
{name:"twenty",val:20.00},
{name:"ten",val:10.00},
{name:"five",val:5.00},
{name:"one",val:1.00},
{name:"quarter",val:0.25},
{name:"Dime",val:0.10},
{name:"Nickel",val:0.05},
{name:"Penny",val:0.01}
]
function checkCashRegister(price, cash, cid) {
var change=cash-price;
var output={status:null,change:[]};
var register={total:0};
cid.forEach( (array)=>{
var key=array[0];
var value=array[1];
register[key]=value;
register.total+=value;
});
//change< cid
if(register.total<change){
output.status="INSUFFICIENT_FUNDS";
return output;
}
//change=cid
if(register.total===change){
output.status="CLOSED";
output.change=cid;
return output;
}
cid=cid.reverse();
//change >cid
//loop through the denom array
var result=[];
denom.forEach( function(subArray){
var value=0;
var currentValueInRegister=register[subArray.name];
var currencyValue=subArray.val;
while(currentValueInRegister >0 &&change>=currencyValue){
change-=currencyValue;
register[subArray.name]-=currencyValue;
value+=currencyValue;
change=Math.round(change*100)/100;
}
if (value>0){
result.push([subArray.name,value]);
}
return result;
})
if(result.length < 1 ||change>0){
output.status="INSUFFICIENT_FUNDS";
return output;
}
else{ output.status="OPEN";
output.change=result;
return output;
}
}
// Example cash-in-drawer array:
// [["PENNY", 1.01],
// ["NICKEL", 2.05],
// ["DIME", 3.1],
// ["QUARTER", 4.25],
// ["ONE", 90],
// ["FIVE", 55],
// ["TEN", 20],
// ["TWENTY", 60],
// ["ONE HUNDRED", 100]]
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) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register/