首先我们要理解reduce()
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

var data = [4,8,15,16,23,42];var add = function (a,b){return a+b}Array.prototype.myReduce = function (f, value=0) {for (let i = 0; i < this.length; i++) {value = f(this[i], value)}return value}var sum = data.myReduce(add,10)console.log(sum)

Array.prototype.myReduce中的this指向调用此方法的单位data.myReduce(add,10)让this指向data数组,然后在for循环里面进行回调。

手写reduce方法相关推荐

  1. 如果数组最后一项为空删除最后一项和去前面的逗号_手写数组方法

    最近把数组的常用方法都手写了一遍,整理到了一块儿,顺便就分享出来. 注:有的方法的实现算法可能不是最好的,所以也可以根据自己的理解有不一样的实现方法,欢迎在评论区留出来. 我废话就不多说了,直接上代码 ...

  2. 多人在线文档(excel)手写签名方法

    简介 无论是高校.政府.企业及其他个人团体,都会产生多人对同一文件签名的需求,本文章提供了一种解决方案 软件 钉钉 方法 负责人注册钉钉 创建团队 配置好对应的群设置 将文件传至群内(可开启保密模式, ...

  3. 使用inetaddress测试目标可达性_纯java手写打造方法级白盒测试框架

    我们在做服务端测试时,经常使用的自动化测试框架或平台大多通过restful风格使用http协议接入系统,例如常见的Jmeter.LoadRunner.Postman等,还有不常用或付费的工具如Test ...

  4. 手写 instanceof 方法

    语法 object instanceof constructor 参数 object 某个实例对象 constructor 某个构造函数 描述 instanceof 运算符用来检测 construct ...

  5. leetcode 手写计算器 方法总结

    1.leetcode 227 Basic calculator 我目前见过的最好的解法 Implement a basic calculator to evaluate a simple expres ...

  6. JS手写数组扁平化(flat)方法

    方法介绍 数组扁平化方法 Array.prototype.flat() 也叫数组拍平.数组拉平.数组降维. Array.prototype.flat() 用于将嵌套的数组"拉平", ...

  7. 手写字符串 trim 方法,保证浏览器的兼容性

    手写字符串 trim 方法,保证浏览器的兼容性 trim() 方法删除字符串首尾空白字符 手写trim方法: String.prototype.trim = function(){return thi ...

  8. Array.isArray,Array.from, Array.entries,Array.incledes的实现原理,分别手写方法

    1.Array.isArray 基本使用 const arr = ["1"]; console.log("isArray:", Array.isArray(ar ...

  9. 手写一切(updating...)

    1.手写ajax基本过程 var xhr; if(window.XMLHttpRequest){//code for IE7+,Firefox,Chrome,Opera,Safarixhr = new ...

  10. javascript算法+手写js面试题

    链表 function ListNode(val, next) {this.val = (val===undefined ? 0 : val)this.next = (next===undefined ...

最新文章

  1. 刻意练习:Python基础 -- Task01. 变量、运算符与数据类型
  2. 《C语言课程设计》一第3章 文 件 类
  3. 《游戏脚本的设计与开发》-第一部分总结 文字脚本的功能扩展和一个游戏测试...
  4. 一 如何检查oracle的归档日志及空间占用率,清除归档日志、Oracle归档日志使用情况查询、查看oracle数据库一周产生的归档日志
  5. CentOS7 systemctl tomcat常用配置
  6. c语言程序设计实验实训教程公众号,C语言程序设计基础知道答案公众号
  7. linux7squid编译安装,CentOS 7.3 源码安装squid 4.12 及安装过程遇到的一些问题
  8. 下面oracle命令正确的是,中国平安银行关于软件测试笔试试题(三)
  9. 2017.4.23 一元三次方程求解 思考记录
  10. 语音识别首次全平台比拼,讯飞依图BAT各家算法差异巨大
  11. 深度学习网络架构(二):AlexNet
  12. 时事点评——红芯浏览器事件
  13. 计算机基础应用期中试卷,计算机应用基础期中考试计算机试卷.doc
  14. 2008年4月28日A股市场存在筑底异样
  15. Authentication failed for 解决办法
  16. JVM面试题整理大全
  17. Android SDK Windows安装教程图解
  18. JSoup模拟登录网站(以校园内网为例)
  19. 谷歌眼镜Mirror API开发指南之Timeline
  20. 软件工程(1)--初识基础概念

热门文章

  1. 抖音热门小视频 视频的md5查看器
  2. 3dmax卸载工具_3Dmax软件无法安装?3Dmax软件正确卸载方法,重装无忧
  3. IReport导出PDF字体加粗失效
  4. PIP卸载升级与安装不成功
  5. LeetCode 75 分类颜色
  6. java堆排序递归代码,无原理版,比较好理解
  7. 将.pem转换为.crt和.key
  8. Linux系统管理---linux用户管理
  9. 京瓷打印机m5521cdn_京瓷Kyocera ECOSYS M5521cdn 驱动
  10. dell 7050台式计算机,Dell OptiPlex 7050 系统指南