I think im close but I can’t get the right format at the end…
let price = 14.5;
let cash = 20;
let change = cash-price;
console.log("Must give back : " + change + "\n");
let cid = [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]];
let obj ={
"PENNY" : 0.01,
"NICKEL" : 0.05,
"DIME" : 0.1,
"QUARTER" : 0.25,
"ONE" : 1,
"FIVE" : 5,
"TEN" : 10,
"TWENTY" : 20,
"ONE HUNDRED" : 100,
0.01:"PENNY",
0.05:"NICKEL",
0.1:"DIME",
0.25:"QUARTER",
1:"ONE",
5:"FIVE",
10:"TEN",
20:"TWENTY",
100:"ONE HUNDRED"
}
let cid_total = 0;
for(let i = 0;i<cid.length;i++){
cid_total += cid[i][1];
}
let ar = [];
for(let i=cid.length-1;i>=0;i--){
ar.push(obj[cid[i][0]]);
}
let ar_rev = ar.slice().reverse();
if(cid_total<change){
console.log("Insufficient_funds");
}
else{
let str = "";
for(let i = 0;i<ar.length;i++){
if(ar[i]<change){
var res = Math.floor(change/ar[i]);
var useful_index = ar_rev.indexOf(obj[obj[[ar[i]]]]);
var cash_needed = res * obj[obj[[ar[i]]]];
var cash_available = cid[useful_index][1];
if(cash_needed > cid[useful_index][1]){
continue;
}
var hi ={
status : "OPEN",
change : [obj[[ar[i]]],res*obj[obj[[ar[i]]]]]
};
console.log(hi);
change = ((change-(res*ar[i])).toFixed(2));
continue;
}
}
// let mi = ("{status: \"OPEN\", change: "+ str+"}");
// console.log(mi);
}