Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function checkCashRegister(price, cash, cid) {
- let change = cash - price;
- let status = '';
- let arr = [];
- let sumOfCash = 0;
- let balance = 0;
- let counter = 0;
- let info = 0;
- let arr2 = [];
- let sumOfAllCash = 0;
- let cashObject = {
- 'ONE HUNDRED': 100,
- 'TWENTY': 20,
- 'TEN': 10,
- 'FIVE': 5,
- 'ONE': 1,
- 'QUARTER': 0.25,
- 'DIME': 0.1,
- 'NICKEL': 0.05,
- 'PENNY': 0.01,
- }
- for (let i = 0; i < cid.length; i++) {
- sumOfAllCash += cid[i][1];
- }
- for (let current in cashObject) {
- if (change - cashObject[current] >= 0) {
- for (let i = 0; i < cid.length; i++) {
- if (current === cid[i][0]) {
- balance = cid[i][1];
- }
- }
- while (change - cashObject[current] >= 0 && balance > 0) {
- if (sumOfAllCash - change === 0) {
- change = 0;
- break;
- } else if (sumOfAllCash - change < 0) {
- info++;
- break;
- }
- change -= cashObject[current];
- balance -= cashObject[current];
- sumOfCash += cashObject[current];
- change = change.toFixed(2);
- counter++;
- }
- if (counter > 0) {
- arr2.push(current, sumOfCash);
- arr.push(arr2);
- arr2 = [];
- console.log(arr);
- sumOfCash = 0;
- balance = 0;
- counter = 0;
- }
- }
- }
- console.log(change);
- let changeObject = {
- status: status,
- change: arr,
- }
- if (change > 0) {
- arr.length = 0;
- }
- if (arr.length > 0) {
- changeObject.status = 'OPEN';
- return changeObject;
- } else if (info > 0 || change > 0) {
- return { status: "INSUFFICIENT_FUNDS", change: [] };
- } else if (arr.length === 0) {
- changeObject.status = 'CLOSED';
- changeObject.change = cid;
- return changeObject;
- }
- return arr;
- }
- console.log(checkCashRegister(19.5, 20, [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]]));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement