问答

reduce原理中的问题

作者:admin 2021-09-19 我要评论

Array.prototype.reduce = function (fn,init) { let total=init||this[0] let start=init?0:1 for (let i = start; i this.length; i++) { total=fn(total,this...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
Array.prototype.reduce = function (fn,init) {
    let total=init||this[0]
    let start=init?0:1
    for (let i = start; i < this.length; i++) {
        total=fn(total,this[i], i, this)
    }
    return total
};

这个total计算过程用的是什么思想,递归还是迭代还是啥
它什么怎么把total计算完成的

###

代入例子就很清晰了

//例如fn是  (a,c)=>a+c
// [1,2,3].reduce((a,c)=>a+c) output 6
Array.prototype.reduce = function (fn,init) {
    let total=init||this[0]
    let start=init?0:1
    for (let i = start; i < this.length; i++) {
        //这里就是循环执行fn,次数就是数组[1,2,3]长度。并无递归,递归复杂度太高
        total=fn(total,this[i], i, this)
    }
    return total
};
###

明显 迭代

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • reduce原理中的问题

    reduce原理中的问题

  • js如何删除一段字符串?

    js如何删除一段字符串?

  • js file对象中uid是如何生成的?

    js file对象中uid是如何生成的?

  • 接口调用返回的blob,下载文件,谷歌上可

    接口调用返回的blob,下载文件,谷歌上可

腾讯云代理商
海外云服务器