Hello every one) I have wroten a function to pass Cash Register quiz, but still I can not pass some tests:
checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]]) should return {status: "OPEN", change: [["TWENTY", 60], ["TEN", 20], ["FIVE", 15], ["ONE", 1], ["QUARTER", 0.5], ["DIME", 0.2], ["PENNY", 0.04]]}
checkCashRegister(19.5, 20, [["PENNY", 0.01], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 1], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]]) should return {status: "INSUFFICIENT_FUNDS", change: []}
//MY FUNC:
function checkCashRegister(price, cash, cid) {
let buying = cash - price;
let start=0
let acum = cid.map(el=>{
start = start+el[1]
})
console.log(buying,start)
let resultArr=[];
cid= cid.reverse();
// Example cash-in-drawer array:
let cashArr =[["PENNY", 0.01],
["NICKEL", 0.05],
["DIME", 0.1],
["QUARTER", 0.25],
["Dollar", 1],
["Five Dollars", 5],
["TEN", 10],
["TWENTY", 20],
["ONE HUNDRED", 100]]
cashArr=cashArr.reverse()
if (buying>start ) {
return {status: "INSUFFICIENT_FUNDS", change: []}
} else if (buying==start) {
return {status: "CLOSED", change: cid.reverse()}
}
function makeArr(arr, buying) {
arr.map((el,i) => {
if(cashArr[i][1]<=buying && arr[i][1]!==0){
resultArr.push([el[0],buying>el[1]? el[1]: Math.abs(((el[1]-buying)-el[1]))])
return makeArr(arr.splice(i), buying)
} else {
return {status: "INSUFFICIENT_FUNDS", change: []}
}
});
}
makeArr(cid, buying);
console.log(resultArr);
return {status: "OPEN", change: resultArr}
}
What needs to be done for the function to work?