配列を反復処理しようとしているJS関数とオブジェクトを初めて使用します...これは、入力値を使用してコインの倍数を取得しようとしたサンプルコードです。
var flag=0;var chipval=0;var num=0;
var main = function(coins){
var coinsarr = [1,5,10,25,50,100,500,501];var length=coinsarr.length
var remval = coins;
var coinskey = "";
while(flag==0){
for(i=0;i<length;i++){
if(coinsarr[i]>remval){
chipval = coinsarr[i-1];
num = parseInt(remval/chipval);
if(remval%chipval==0){
flag = 1;
break;
}else{
remval=remval%chipval;
$flag = 0;
break;
}
}
}
coinskey = coinskey+","+chipval+":"+num;
}
coinskey = coinskey.replace(/(^,)|(,$)/g, "")
alert(coinskey);
}
main(120)を実行すると、100:2,10:2が返されます(これは、2の100コインと2の10コインでは何もありません)
main(720)を実行すると、メモリリークが発生します...「このページのスクリプトはメモリを使いすぎました」と表示されます。誰かが私に問題がどこにあるか、そうでなければこれが進むための正しい方法であるかを教えてもらえますか?
あなたの時間と忍耐に感謝します...