お釣りの計算

by yshrkn

HTML

<!--
会計金額と受け取った金額からお釣りを計算する関数を作成してください。
戻り値はオブジェクトで○○円硬貨が何枚、○○円札が何枚か分かるようにしてください。
-->

JavaScript

function calcChange(price, cash) {
  var change = {
     bill1000: 3,
     coin500: 1,
     coin100: 2,
     coin50: 1,
     coin10: 3
  }

  var difference = cash - price;
  var cnt;

  // var len = Object.keys(change).length; //IE9以上で使用可
  // for (var i = 0, base; i < len; i++) {

  //   console.log("len:", len);

  //   switch (change[i]) {
  //     case bill1000:
  //       base = 1000;
  //       break;
  //     case coin500:
  //       base = 500;
  //       break;
  //     case coin100:
  //       base = 100;
  //       break;
  //     case coin10:
  //       base = 10;
  //   }

  //   cnt = parseInt(difference / base);
  //   change[i] = cnt;
  //   console.log("base:", base + "---cnt:", cnt);
  //   difference -= base * cnt;    
  // }

    cnt = parseInt(difference / 1000);
    change.bill1000 = cnt;
    difference -= 1000 * cnt;    

    cnt = parseInt(difference / 500);
    change.coin500 = cnt;
    difference -= 500 * cnt;    

    cnt = parseInt(difference / 100);
    change.coin100 = cnt;
    difference -= 100 * cnt;    

    cnt = parseInt(difference / 50);
    change.coin50 = cnt;
    difference -= 50 * cnt;    

    cnt = parseInt(difference / 10);
    change.coin10 = cnt;
    difference -= 10 * cnt;    


  return change;
}

console.log(calcChange(1220, 5000));