我需要你的帮助来理解我在for循环中做错了什么。
我正在试着写一个函数,它接受账单的总金额和支付账单的现金总额。返回一个新对象,该对象描述收银员要返还的找零总额。省略我不应该退还的任何类型的零钱,例如,如果我不退还一张20美元的钞票,我就不会把它包括在结果中。
我确实得到了带有结果的对象,但并不是美元值之间的拆分所期望的方式。
我希望得到这样的结果:
{ tenDollar: 1, twoDollar: 1, oneDollar: 1, quarter: 3, penny: 2 }但得到的却是这个:
{ tenDollar: 1, twoDollar: 0, oneDollar: 3, quarter: 0, dime: 7, penny: 7}代码实现:
const calculateChange = function(total, cash) {
// Your code here
let arr = [];
let change = cash - total;
//console.log(change);
//creates an aaray of split numbers
var i = 1;
while (change > 0) {
arr.unshift((change % 10) * i);
change = Math.floor(change / 10);
i *= 10
}
let changeType = {tenDollar: 0, twoDollar: 0, oneDollar: 0, quarter: 0, dime: 0, penny: 0};
for(i = 0; i < arr.length; i++) {
if (arr[i] % 1000 === 0) {
changeType.tenDollar = arr[i] / 1000;
} else if (arr[i] % 200 === 0 && arr[i] >=200 ) {
changeType.twoDollar = arr[i] / 200;
} else if (arr[i] % 100 === 0) {
changeType.oneDollar = arr[i] / 100;
} else if (arr[i] % 25 === 0) {
changeType.quarter = arr[i] / 25;
} else if (arr[i] % 10 === 0) {
changeType.dime = arr[i] / 10;
} else if (arr[i] % 1 === 0) {
changeType.penny = arr[i] / 1;
}
}
return changeType;
};
console.log(calculateChange(2623, 4000));发布于 2021-03-01 08:43:25
我觉得你的方式不对,
这是解决类似问题的一种真正的方法。
(function () {
var app = angular.module("calcApp", []);
app.controller("calcController", function () {
this.amountChange = function (amount, money) {
//if(form.$invalid)
//return alert("Please check form and enter correct values");
var change = money - amount;
var remaining = change * 100;
var calcQuarter = Math.floor(remaining / 25);
remaining = remaining % 25;
var calcDime = Math.floor(remaining / 10);
remaining = remaining % 10;
var calcNickel = Math.floor(remaining / 5);
remaining = remaining % 5;
var calcPenny = Math.floor(remaining / 1);
alert(
"\nThe total was $" +
amount +
" with " +
"$" +
money +
" tendered.\n\nPlease return $" +
change.toFixed(2) +
": " +
calcQuarter +
" quarters, " +
calcDime +
" dimes, " +
calcNickel +
" nickels, and " +
calcPenny +
" pennies, Thank you!"
);
};
});
})();可以找到完整的代码这里
https://stackoverflow.com/questions/66415149
复制相似问题