Hello,
I’ve been working on this challenge for a while, and I took a break. I recently just came back and I’ve been working on it, but I have just been stuck. I was wondering if any of you guys can provide any help on getting me on the right track to providing my own solution?
So, in the code, I’ve been using a loop to continuously subtract to get the proper change, but it keeps giving me weird values. I’ve been trying to figure that out for the longest.
Here is My Code:
function checkCashRegister(price, cash, cid) {
let changeCal = cash - price;
let drawerSum = 0; // calculates sum of money in drawer.
let obj = {};
obj.status = " ";
obj.change = [];
let sum = 0;
/* Step 1: Iterate through 2d array */
for(let i=0; i < cid.length; i++) {
for(let j=0; j < cid[i].length; j++) {
if(isNaN(cid[i][j]) === false) {
drawerSum += cid[i][j]; // add up all the numbers
}
if(cid[i][j] === "PENNY") {
cid[i][j] = 0.01;
}
if(cid[i][j] === "NICKEL") {
cid[i][j] = 0.05;
}
if(cid[i][j] === "DIME") {
cid[i][j] = 0.1;
}
if(cid[i][j] === "QUARTER") {
cid[i][j] = 0.25;
}
if(cid[i][j] === "ONE") {
cid[i][j] = 1;
}
if(cid[i][j] === "FIVE") {
cid[i][j] = 5;
}
if(cid[i][j] === "TEN") {
cid[i][j] = 10;
}
if(cid[i][j] === "TWENTY") {
cid[i][j] = 20;
}
if(cid[i][j] === "ONE HUNDRED") {
cid[i][j] = 100;
}
}
}
/* Create a new 2D array by ordering it */
let cid2 = cid.sort(function(a, b) {
return b[0] - a[0];
})
loop1:
for(let i=0; i < cid2.length; i++) {
//loop2:
// for(let j=0; j < cid2[i].length; j++) {
if(changeCal < cid2[i][0]) {
continue; // Skip the iteration
} else {
while(changeCal > 0) {
changeCal -= cid2[i][0];
sum += cid2[i][0];
console.log(sum);
if(sum >= cid2[i][1]) {
changeCal -= cid2[i+1][0];
//continue loop1;
break;
}
}
//console.log(sum);
console.log(changeCal);
}
// }
}
if(drawerSum < changeCal) {
obj.status = "INSUFFICIENT_FUNDS";
obj.change = [];
}
if(drawerSum === changeCal) {
obj.status = "CLOSED";
obj.change = cid;
}
return obj;
}
All help is appreciated. Thanks!