здесь для метода цикла, и результат, который я хочу, такой же, как и для приведенного ниже кода, также
function reduce (dollars) {
let arr = [];
let change = [10000,5000,2000,1000,500,200,100,50,20,10,1];
if(dollars === 0) return arr
for(key of change){
if(key <= dollars) return arr.concat(key).concat(reduce (dollars -= key));
}
}
console.log(reduce(900))
console.log(reduce(9000))
как использовать редукцию и использование синтаксиса спреда рекурсивным способом, я получил некоторую ошибку, и функция concat вызывается не как функция, когда я использую reduce
рекурсивно здеськод,
function reduce(dollar) {
let change = [10000,5000,2000,1000,500,200,100,50,20,10,1];
if(dollar === 0) return c
let c = change.reduce((ar, el) => {
if(dollar >= el) {
return ar.concat(el).concat(reduce(dollar-=el))
}
}, [])
}
let [ one, two, three] = [10020,9000,900];
console.log(reduce(one));
console.log(reduce(two));
console.log(reduce(three));
Выход для уменьшения (один) составляет [ 10000, 20 ]