作为一个前端菜鸟,觉得资料比较好,特地分享一下~~

reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。
你一定也和我一样看的有点迷糊,其实reduce接收的就是一个回调函数,去调用数组里的每一项,直到数组结束。
reduce接受一个函数,函数有四个参数,分别是:
     1、上一次的值;
     2、当前值;
     3、当前值的索引;
     4、数组;

var array = [4,5,6,7];
var singleVal = 0;

// 只能在这一行下面写代码
var singleVal = array.reduce(function(previousVal,currentVal){
return previousVal + currentVal;
},0);

这个是求总和的,所有数组的值的和,

分析一下这个结果,这个回调函数共调用了4次,因为第一次没有previousValue,所以直接从数组的第二项开始,一只调用到数组结束。
reduce还有第二个参数,我们可以把这个参数作为第一次调用callback时的第一个参数,上面这个例子因为没有第二个参数,所以直接从数组的第二项开始,如果我们给了第二个参数为5,那么结果就是这样的:
结果应该是 数组的和是 5 + 4 +5 + 6+7 = 27 
第一次调用的previousValue的值就用传入的第二个参数代替,函数被调用了5次,也就是数组的length。
reduce可以帮助我们轻松的完成很多事,除了累加,还有扁平化一个二维数组:
 
没有图啊,嫌麻烦 

最新文章

  1. shared_ptr
  2. 最新版CocoaPods的使用与安装-以导入ReactiveCocoa框架为例
  3. Mina 资料
  4. 招聘一个靠谱的ios
  5. React笔记_(5)_react语法4
  6. excel数据通过构建sql语句导入到数据库中
  7. java 反编译插件 JD-Eclipse 和 JD-IntelliJ
  8. Servlet(五岁以下儿童)web.xml一些常用的配置
  9. JS二维数据处理逻辑封装探究
  10. AngularJs ng-repeat指令中怎么实现含有自定义指令的动态html
  11. Struts2--标签tag
  12. 1068: [SCOI2007]压缩
  13. [Swift]LeetCode59. 螺旋矩阵 II | Spiral Matrix II
  14. Android6.0 源码修改之屏蔽系统短信功能和来电功能
  15. 使用Application.GetResourceStream方法加载资源时得到的总是null
  16. myeclipse集成jdk、tomcat8、maven、svn
  17. 如何修复“sshd error: could not load host key”
  18. A-B Problem nyoj
  19. bzoj 1002 [FJOI2007]轮状病毒——打表找规律
  20. 20165218 2017-2018-1 《Java程序设计》第三周学习总结

热门文章

  1. Apsara Clouder云计算专项技能认证:网站建设-部署与发布
  2. SSH免密码登陆详解
  3. 吴裕雄--天生自然 JAVASCRIPT开发学习:对象 实例(2)
  4. t-检验
  5. 喜欢B站的用户为何认同感超强?
  6. 从Surface 3发布 看微软快速转向的根由
  7. mybatis-generator二次开发总结
  8. ES6-Set与Map数据结构
  9. Tensorflow 错误集锦
  10. VMware 虚拟机重启后获取不到ip的问题