编辑代码

function checkCashRegister(price, cash, cid) {
var m = (cash-price)*100;//转换成美分
 var cv = [1, 5, 10, 25, 100, 500, 1000, 2000, 10000];
var cArr = [];//数量列表
var flag = true;
var moneyFlag = true;
for(var i=cv.length-1;i>=0;i--){
 if(m<cv[i]){
	cArr.push(0);
	continue;
	}
 var n =parseInt(m/cv[i]);
 if(n*cv[i] > cid[i][1]*100){
   cArr.push(cid[i][1]*100/cv[i]);  
   m-= cid[i][1]*100;
		if(i==0)
 			flag = false;
   continue;
 }
	m = m%cv[i];
 	cArr.push(n);
  if(n*cv[i] < cid[i][1]*100)
    moneyFlag = false;                         
}
var res = [];
for(var i = cid.length-1;i>=0;i--) {
   if(cArr[cid.length-1-i]>0){
   var a = cid[i];
   a[1] = cArr[cid.length-1-i]*cv[i]/100;
   res.push(a);
   } }                        
if(flag){
   if(!moneyFlag)
   	return res; 
   else
    return "Closed";
}else{
   	return "Insufficient Funds";                          
 }
}

// Example cash-in-drawer array:
// [["PENNY", 1.01],
// ["NICKEL", 2.05],
// ["DIME", 3.10],
// ["QUARTER", 4.25],
// ["ONE", 90.00],
// ["FIVE", 55.00],
// ["TEN", 20.00],
// ["TWENTY", 60.00],
// ["ONE HUNDRED", 100.00]]

//checkCashRegister(19.50, 20.00, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.10], ["QUARTER", 4.25], ["ONE", 90.00], ["FIVE", 55.00], ["TEN", 20.00], ["TWENTY", 60.00], ["ONE HUNDRED", 100.00]]);
console.log(checkCashRegister(3.26, 100.00, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.10], ["QUARTER", 4.25], ["ONE", 90.00], ["FIVE", 55.00], ["TEN", 20.00], ["TWENTY", 60.00], ["ONE HUNDRED", 100.00]]));