Ниже приведен простой пример.
Просто выполните итерацию для каждого размера чеканки, просто разделите текущую общую сумму на каждый размер чеканки, если есть чеканка, затем вставьте ее в массив.
function countChange(amount) {
const currency = [500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01];
const change = [];
for (let i = 0; i < currency.length; i++) {
const coinsize = currency[i];
//how many coins?
const coins = Math.trunc(amount / coinsize);
//remove these from total
amount -= coinsize * coins;
//fix rounding problems.
amount = Math.round(amount * 100) / 100;
//add to our result
if (coins > 0)
{
change.push({
coinsize,
coins
});
}
}
return change;
};
console.log(countChange(500.26));