`
zhangyaochun
  • 浏览: 2596194 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

array的reduce

阅读更多

 

    ES5 (js 1.8)加入了 reduce

 

    接收一个函数,然后从左到右遍历item,直到reduce到一个值。

 

arr.reduce(callback, [initialValue]);

 

   参数:

 

  • callback(previousValue, currentValue, index, array)
  1. previousValue   如果指定了initialValue,那就用initialValue 或者 是上一次循环返回的值
  2. currentValue      当前执行到的数组的值
  3. index                   当前执行到的数组的下标
  4. array                    执行reduce的array

 

 

  • initialValue

     callback 调用时候的第一个参数

 

 

   我们来直观地看一个例子:

 


    
 

 

   第一次执行的reduce里面的callback的arguments的情况:

 


    
 

  我们看到,如果你指定了initialValue的化,第一次执行的时候,callback的第一个参数就是它,而index为0

 

 

 

   那如果没有指定initialValue呢?

 

 

     

 


     
 

   如果没有指定initialValue的化,第一次执行previousValue取arr[0],然后index为1

 

 

 

    那说了这么多,它有没有什么用?

 

 

  • 把一个数组里面的数字做加法:

 

 

[1,2,3,4].reduce(function(a, b) {
   return a + b;
});

 

 

  • 合并二维数组:
[[0,1], [2,3], [4,5]].reduce(function(a, b) {
    return a.concat(b);
});

 

 

  扩展阅读:

 

   http://msdn.microsoft.com/zh-cn/library/ie/ff679975(v=vs.94).aspx

 


 

  • 大小: 9.7 KB
  • 大小: 9.9 KB
  • 大小: 7.9 KB
  • 大小: 10.5 KB
分享到:
评论

相关推荐

    前端开源库-arrayreduce

    `arrayreduce` 是一个前端开源库,专门设计用于处理数组的归约操作。这个库提供了一系列实用工具,帮助开发者简化和优化对数组中的数据进行聚合、计算和其他复杂操作的过程。 `Array.prototype.reduce()` 是 ...

    matlab开发-通过仲裁函数进行的ndarrayreducation

    为了验证`arrayreduce`函数的正确性和效率,项目中提供了两个测试脚本:`arrayreduce_test1.m`和`arrayreduce_test2.m`。这些测试用例可能包含了不同维度的数组,以及不同的仲裁函数,以此来确保在各种情况下函数都...

    PHP array_reduce()函数的应用解析

    array_reduce($array, $callback, $initial) ``` - `$array`:这是我们要处理的数组。 - `$callback`:这是一个用户自定义的函数,它接收两个参数,通常分别是累积器和当前元素,然后返回一个新的累积器值。 - `$...

    js代码-ES5实现数组的reduce

    这里,我们创建了一个名为`arrayReduce`的函数,它模拟了`reduce`的行为。首先检查是否有初始值,然后通过`for`循环遍历数组,每次迭代调用`callback`并更新`accumulator`。 `reduce`还可以用于其他用途,例如对象...

    通过任意函数减少 ND 数组:实现对 A 的子块计算任意函数的 ND 数组的快速减少-matlab开发

    本文将深入探讨一个名为 "arrayreduce" 的功能,它允许用户通过任意函数对 ND 数组的子块进行快速减少,从而实现数据的降维或聚合。 标题中的“通过任意函数减少 ND 数组:实现对 A 的子块计算任意函数的 ND 数组的...

    jQuery-reduce:ES5 Array.reduce 作为 jQuery 对象方法和 jQuery 函数的实现

    ES5 Array.reduce 方法作为 jQuery 函数的实现,它可以对数组和常规对象进行操作,并且受旧的、不支持 ES5 的浏览器(例如 IE8-)支持 加上一个 jQuery 插件,用于对 jQuery 对象执行数组缩减 示例用法 return prev...

    Array数组对象中的forEach、map、filter及reduce详析

    在JavaScript的Array数组对象中,有四个非常重要的方法:`forEach`、`map`、`filter`和`reduce`。这些方法提供了强大的功能,能够帮助我们处理数组中的数据,进行迭代、转换、筛选和累加操作。下面我们将逐一详细...

    js数组方法reduce经典用法代码分享

    Reduce方法的核心概念是累加器(accumulator),它接受一个回调函数作为参数,该回调函数又接受四个参数:累加器(accumulator)、当前元素(currentValue)、当前索引(currentIndex)和源数组(array)。...

    js代码-array.reduce 2

    在JavaScript的世界里,`Array.prototype.reduce()` 是一个非常强大的方法,它允许我们对数组中的所有元素执行累积操作,最终返回一个单一的值。这个方法在处理数据聚合、计算、甚至是创建新结构时都非常有用。本篇...

    js代码-手写一个Array的reduce方法

    在JavaScript中,`Array.prototype.reduce()` 是一个非常重要的方法,它用于对数组中的所有元素执行一个函数,将它们归约到单个返回值。这个方法是处理数组数据的强大工具,尤其在聚合、计算和构建新数据结构时。...

    详解JavaScript之Array.reduce源码解读

    reduce(…)方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值(累计作用) 此方法接受两个参数:callback(…)(必选)、initialValue(可选)。 callback(…)接受4个参数:...

    js代码-array.reduce

    在JavaScript中,`Array.prototype.reduce()` 是一个非常强大的方法,用于对数组的所有元素进行累积计算,最终返回一个单一的值。这个方法可以处理数组的各种计算,例如求和、求平均值、统计计数、合并对象等。让...

    js_array-method-reduce

    在JavaScript的世界里,`Array.prototype.reduce()`方法是一个非常强大的工具,它允许我们对数组中的所有元素执行累积操作,最终返回一个单一的值。这个方法在处理数据聚合、计算总和、过滤、转换等方面非常有用。在...

    reduce_js_

    array.reduce(callback[, initialValue]) ``` - `callback`:这是个函数,对于数组中的每个元素都会被调用一次。它接收四个参数: - `accumulator`:累积器,存储上一次回调函数的结果,或初始值。 - `current...

    JavaScript实现Array(数组)和Map

    此外,JavaScript提供了一系列内置方法来操作数组,如push()用于在数组末尾添加元素,pop()用于移除末尾元素,slice()用于提取数组的一部分,concat()用于连接两个或多个数组,以及map()、filter()、reduce()等用于...

    JavaScript 中的 `Array.prototype.filter` 方法全解析

    在 JavaScript 编程中,处理数组是一项基本而重要的任务。数组的过滤操作是其中的一个常见...此外,了解其与 Array.prototype.map 和 Array.prototype.reduce 的结合使用,可以帮助你更好地编写高效且易于维护的代码。

Global site tag (gtag.js) - Google Analytics