Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let changeMapping = [];
- changeMapping.push(createChangeObj("twentyDollar", 2000));
- changeMapping.push(createChangeObj("tenDollar", 1000));
- changeMapping.push(createChangeObj("fiveDollar", 500));
- changeMapping.push(createChangeObj("twoDollar", 200));
- changeMapping.push(createChangeObj("oneDollar", 100));
- changeMapping.push(createChangeObj("quarter", 25));
- changeMapping.push(createChangeObj("dime", 10));
- changeMapping.push(createChangeObj("nickel", 5));
- changeMapping.push(createChangeObj("penny", 1));
- var createChangeObj = function(key, value) {
- let changeObj = {};
- changeObj.key = key;
- changeObj.value = value;
- return changeObj;
- };
- var calculateChange = function(total, cash) {
- if (cash <= total) {
- // Cash given is less than total owed.
- return {};
- }
- let retChangeObj = {};
- let difference = cash - total;
- for (let changeObj of changeMapping) {
- let val = changeObj.value;
- // This denomination is greater than amount remaining
- let numDenom = 0;
- while (val <= difference) {
- difference -= val;
- numDenom++;
- }
- if (numDenom > 0) {
- retChangeObj[changeObj.key] = numDenom;
- }
- }
- return retChangeObj;
- };
- var runTask4 = function() {
- console.log(calculateChange(1787, 2000));
- console.log(calculateChange(2623, 4000));
- console.log(calculateChange(501, 1000));
- /*
- { twoDollar: 1, dime: 1, penny: 3 }
- { ten: 1, twoDollar: 1, dollar: 1, quarter: 3, penny: 2 }
- { twoDollar: 2, quarter: 3, dime: 2, penny: 4 }
- */
- };
- runTask4();
Add Comment
Please, Sign In to add comment