javascript - 如何编写递归reduce函数?

标签 javascript recursion reduce

我正在尝试使用递归编写一个reduce函数。我正在学习递归及其练习的一部分,因此我试图了解什么在我的代码中不起作用。很高兴有任何帮助! 诗。它假设从数组的末尾开始(例如 yeh 变成 hey)

var strings = function(previous,current) {
    return previous+current;
};

function reducing(arr,start,func) {

    if (arr.length == 0) {
        return start;
    }
    else if (arr.length == 1) {
        return arr[0];
    }
    else {
        return func(start,arr[arr.length-1]) + reducing(arr.slice(1),start,func);
    }
}

reducing(['y','e','h'],'',strings)

最佳答案

这可能是问题所在,而不是减少(arr.slice(1),start,func)尝试减少(arr.slice(0,arr.length-1),start,func)如下:

function reducing(arr,start,func) {
  if (arr.length == 0) {
     return start;
  }
  else if (arr.length == 1) {
     return arr[0];
  }
  else {
    return func(start, arr[arr.length-1]) + reducing(arr.slice(0, arr.length -1),start,func);
 }
}

关于javascript - 如何编写递归reduce函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37692644/

相关文章:

java - For循环不在递归函数中迭代

java - 测试数据时如何避免空指针异常

javascript - 如何将点击第一个按钮的第二个按钮传递给javascript函数

javascript - 我如何摆脱 slideToggle() 上的跳转?

java - 计算树的高度 - Java

java - 当 "n"的值较大时,递归函数运行时间过长

python - 'pythonic' 与函数式编程中的 'fold' 函数等效是什么?

python - 类型错误 : Reduce() of empty sequence with no initial value

javascript - HTTP 请求移动 JavaScript

javascript - React.props.children 未定义