arr.reduce( callback,[initialValue])
reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素
callback (执行数组中每个值的函数,包含四个参数)
1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
2、currentValue (数组中当前被处理的元素)
3、index (当前元素在数组中的索引)
4、array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数。) 如果没有提供initialValue,reduce 会从索引1的地方开始执行 例如下面两串代码
var arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum); 打印结果:
1 2 1
3 3 2
6 4 3
[1, 2, 3, 4] 10
var  arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
},0) //注意这里设置了初始值
console.log(arr, sum); 打印结果:
0 1 0
1 2 1
3 3 2
6 4 3
[1, 2, 3, 4] 10 没有设置
initialValueed的值得话便是从index等于1开始执行,比设置初始值为0的少执行一次
reduce的简单用法求和与乘积
var  arr = [1, 2, 3, 4];
var sum = arr.reduce((x,y)=>x+y)
var mul = arr.reduce((x,y)=>x*y)
console.log( sum ); //求和,10
console.log( mul ); //求乘积,24 reduce的高级用法:数组去重,二维数组转化成一维,对象里的属性求和 等我理解透彻再补充…………

 

最新文章

  1. Bill的挑战(bzoj 1879)
  2. [转]CSS hack大全&详解
  3. [Unity] Unity3D研究院编辑器之独立Inspector属性
  4. 几种常用的JS类定义方法(转)
  5. 闲谈SQL脚本优化
  6. 把方法转json在前台输出
  7. 【python之路6】pycharm的使用
  8. WPF仿微软事件和属性窗体,效果更炫!
  9. 【HDU 5532 Almost Sorted Array】水题,模拟
  10. java 构造方法 constructor demo笔记
  11. SVN的svnlook命令
  12. flask实战-个人博客-虚拟环境、项目结构
  13. java 每间隔一段时间执行一段代码
  14. Minimum number of steps CodeForces - 805D(签到题)
  15. HDU 4557 Tree(可持久化字典树 + LCA)
  16. Java反编译代码分析(一)
  17. Servlet下载文件迅雷不支持问题真相之一
  18. fiddler添加监测请求的 ip地址
  19. cocos2d-x onMouseMove中CCTouch *pTouch参数的细节
  20. delphi android 录像

热门文章

  1. 【转】地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02) 的转换算法 C#
  2. C++ - 第一个程序
  3. iOS的多线程技术
  4. scdbg分析shellcode
  5. react做的简单的选项卡
  6. (CVE-2016-5195)脏牛本地提权
  7. centos6.5搭建rabbitmq服务器(单机)
  8. 不使用局部变量和for循环或其它循环打印出如m=19,n=2結果为2 4 8 16 16 8 4 2形式的串
  9. Stream入门及Stream在JVM中的线程表现
  10. REDIS scan与sunionstore合并多集合数据