reduce()方法

1、reduce()方法概述  reduce方法有两个参数,第一个参数是一个callback,用于针对数组项的操作;第二个参数则是传入的初始值,这个初始值用于单个数组项的操作。需要注意的是,reduce方法返回值并不是数组,而是形如初始值的经过叠加处理后的操作。
 1 /*
 2    数组元素求和
 3 */
 4 var arr = [1, 2, 3, 4, 5];
 5
 6 var reducer = function add(sum, num) { return sum + num; };
 7
 8 var total = arr.reduce(reducer, 0);
 9
10 console.log(total);
2、reduce()方法实现原理
 1 Array.prototype.reduce = function(callback,initialValue){
 2     var previous = initialValue,k = 0,length = this.length;
 3     if(typeof initialValue === "undefined"){
 4         previous = this[0];
 5         k = 1;
 6     }
 7     if(typeof callback === "function"){
 8         for(k; k < length; k++){
 9            previous = callback(previous, this[k], k, this);
10         }
11     }
12     return previous;
13 }
  
时间: 2024-08-24 03:27:04

reduce()方法的相关文章

es 5 数组reduce方法记忆

reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值. 概念:对数组中的所有元素调用指定的回调函数.该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供. 语法: array1.reduce(callbackfn[, initialValue]) 参数: 参数 定义 array1 必需.一个数组对象. callbackfn 必需.一个接受最多四个参数的函数.对于数组中的每个元素,reduce 方法都会调

ruby reduce方法

Ruby 中一些好用的方法(注意reduce方法) 2016-07-27 17:57 370人阅读 评论(0) 收藏 举报 #####inject inject是我使用最频繁的方法了,它的强大之处在于可以方便的对嵌套的数组,哈希等混合数据结构进行合并或求和, 可以有效减少代码量. 例如最常见的数组套哈希: 1 2 3 4 array = [{a:100}, {b:200}, {c:300}] array.inject(0) { |sum, e| sum += e.values.first } #

reduce 方法 (Array) (JavaScript)

对数组中的所有元素调用指定的回调函数.该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供. 语法 array1.reduce(callbackfn[, initialValue]) 参数 参数 定义 array1 必需.一个数组对象. callbackfn 必需.一个接受最多四个参数的函数.对于数组中的每个元素,reduce 方法都会调用 callbackfn 函数一次. initialValue 可选.如果指定 initialValue,则它将用作初始值来启动累积.

Java8中聚合操作collect、reduce方法详解

Stream的基本概念 Stream和集合的区别: Stream不会自己存储元素.元素储存在底层集合或者根据需要产生.Stream操作符不会改变源对象.相反,它会返回一个持有结果的新的Stream.3.Stream操作可能是延迟执行的,这意味着它们会等到需要结果的时候才执行.Stream操作的基本过程,可以归结为3个部分: 创建一个Stream.在一个或者多个操作中,将指定的Stream转换为另一个Stream的中间操作.通过终止(terminal)方法来产生一个结果.该操作会强制它之前的延时操

JavaScript - reduce方法 (Array)

JavaScript - reduce方法 (Array) 解释:reduce() 方法接收一个函数作为累加器(accumulator),数组 中的每个值(从左到右)开始合并,最终为一个值. 语法:arr.reduce(callback,[initialValue]) 参数: callback:执行数组中每个值的函数,包含四个参数 previousValue:上一次调用回调返回的值,或者是提供的初始值(initialValue) currentValue:数组中当前被处理的元素 index:当前

在JavaScript函数式编程里使用Map和Reduce方法

所有人都谈论道workflows支持ECMAScript6里出现的令人吃惊的新特性,因此我们很容易忘掉ECMAScript5带给我们一些很棒的工具方法来支持在JavaScript里进行函数编程,这些工具方法我们现在可以使用了.在这些函数方法里主要的是基于JavaScript 数组对象的map()方法和reduce()方法. 如果你如今还没有使用map()和reduce()方法,那么现在是时候开始使用了.如今绝大部分的JavaScript开发平台都与生俱来的支持ECMAScript5.使用Map方

reduce 方法(升序)

语法: array1.reduce(callbackfn[, initialValue]) 参数 定义 array1 必需.一个数组对象. callbackfn 必需.一个接受最多四个参数的函数.对于数组中的每个元素,reduce 方法都会调用 callbackfn 函数一次. initialValue 可选.如果指定 initialValue,则它将用作初始值来启动累积.第一次调用 callbackfn 函数会将此值作为参数而非数组值提供 返回值: 通过最后一次调用回调函数获得的累积结果. 异

map和reduce方法理解

1.map方法{ 1.使用map方法需要两个参数(函数,列表){ 1.参数要求:函数必须是作用于一个元素的 2.例如:map(str,[1,2,3]){ 返回结果:['1','2','3'] } } 2.返回的是一个列表 } 2.reduce方法{ 1.使用reduce方法需要两个参数(函数,列表){ 1.参数要求:函数必须作用于两个元素的,并且返回一个元素作为列表元素,直到列表元素剩下最后一个元素 2.例如{ def add(x,y): return x + y reduce(add,[1,2

js数组中reduce方法

reduce() 方法 相当于一个函数累加器,接受一个回调函数的结果,然后将前一次的函数结果再和下一次的数据再次执行此回调函数. reduce(function(previousValue,currentValue,index,array){ return xxx  //需要执行的函数结果, previousValue---------上一次的值- currentValue---------当前值 index------当前值的索引 array-------数组 }): [1,2,3,4,5].