как распространить с помощью рекурсии

здесь for для метода цикла, и результат, который я хочу, такой же, как этот, для приведенного ниже кода также

 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));

вывод для Reduce (one) - [ 10000, 20 ]

4 голоса | спросил Zum Dummi 5 FebruaryEurope/MoscowbTue, 05 Feb 2019 03:18:36 +0300000000amTue, 05 Feb 2019 03:18:36 +030019 2019, 03:18:36

1 ответ


0
Убедитесь, что обработчик Reduce всегда возвращает массив, так как обработчик ожидает, что ---- +: = 0 =: + ---- будет массивом.Если ---- +: = 1 =: + ---- возвращается в обработчике редукции, он будет передан на следующую итерацию редукции как ---- +: = 2 =: + ---- ,что является причиной ошибки, которую вы получаете.Кроме того, убедитесь, что ---- +: = 3 =: + ---- определено перед его возвратом, или измените код, как показано ниже, чтобы избежать необходимости в ---- +: = 4 =: + ---- полностью:
ответил Dacre Denny 5 FebruaryEurope/MoscowbTue, 05 Feb 2019 03:27:38 +0300000000amTue, 05 Feb 2019 03:27:38 +030019 2019, 03:27:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132