ES5 (js 1.8)加入了 reduce
接收一个函数,然后从左到右遍历item,直到reduce到一个值。
arr.reduce(callback, [initialValue]);
参数:
- callback(previousValue, currentValue, index, array)
- previousValue 如果指定了initialValue,那就用initialValue 或者 是上一次循环返回的值
- currentValue 当前执行到的数组的值
- index 当前执行到的数组的下标
- 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
相关推荐
`arrayreduce` 是一个前端开源库,专门设计用于处理数组的归约操作。这个库提供了一系列实用工具,帮助开发者简化和优化对数组中的数据进行聚合、计算和其他复杂操作的过程。 `Array.prototype.reduce()` 是 ...
为了验证`arrayreduce`函数的正确性和效率,项目中提供了两个测试脚本:`arrayreduce_test1.m`和`arrayreduce_test2.m`。这些测试用例可能包含了不同维度的数组,以及不同的仲裁函数,以此来确保在各种情况下函数都...
array_reduce($array, $callback, $initial) ``` - `$array`:这是我们要处理的数组。 - `$callback`:这是一个用户自定义的函数,它接收两个参数,通常分别是累积器和当前元素,然后返回一个新的累积器值。 - `$...
这里,我们创建了一个名为`arrayReduce`的函数,它模拟了`reduce`的行为。首先检查是否有初始值,然后通过`for`循环遍历数组,每次迭代调用`callback`并更新`accumulator`。 `reduce`还可以用于其他用途,例如对象...
ES5 Array.reduce 方法作为 jQuery 函数的实现,它可以对数组和常规对象进行操作,并且受旧的、不支持 ES5 的浏览器(例如 IE8-)支持 加上一个 jQuery 插件,用于对 jQuery 对象执行数组缩减 示例用法 return prev...
本文将深入探讨一个名为 "arrayreduce" 的功能,它允许用户通过任意函数对 ND 数组的子块进行快速减少,从而实现数据的降维或聚合。 标题中的“通过任意函数减少 ND 数组:实现对 A 的子块计算任意函数的 ND 数组的...
在JavaScript的Array数组对象中,有四个非常重要的方法:`forEach`、`map`、`filter`和`reduce`。这些方法提供了强大的功能,能够帮助我们处理数组中的数据,进行迭代、转换、筛选和累加操作。下面我们将逐一详细...
Reduce方法的核心概念是累加器(accumulator),它接受一个回调函数作为参数,该回调函数又接受四个参数:累加器(accumulator)、当前元素(currentValue)、当前索引(currentIndex)和源数组(array)。...
在JavaScript的世界里,`Array.prototype.reduce()` 是一个非常强大的方法,它允许我们对数组中的所有元素执行累积操作,最终返回一个单一的值。这个方法在处理数据聚合、计算、甚至是创建新结构时都非常有用。本篇...
在JavaScript中,`Array.prototype.reduce()` 是一个非常重要的方法,它用于对数组中的所有元素执行一个函数,将它们归约到单个返回值。这个方法是处理数组数据的强大工具,尤其在聚合、计算和构建新数据结构时。...
reduce(…)方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值(累计作用) 此方法接受两个参数:callback(…)(必选)、initialValue(可选)。 callback(…)接受4个参数:...
在JavaScript中,`Array.prototype.reduce()` 是一个非常强大的方法,用于对数组的所有元素进行累积计算,最终返回一个单一的值。这个方法可以处理数组的各种计算,例如求和、求平均值、统计计数、合并对象等。让...
在JavaScript的世界里,`Array.prototype.reduce()`方法是一个非常强大的工具,它允许我们对数组中的所有元素执行累积操作,最终返回一个单一的值。这个方法在处理数据聚合、计算总和、过滤、转换等方面非常有用。在...
array.reduce(callback[, initialValue]) ``` - `callback`:这是个函数,对于数组中的每个元素都会被调用一次。它接收四个参数: - `accumulator`:累积器,存储上一次回调函数的结果,或初始值。 - `current...
此外,JavaScript提供了一系列内置方法来操作数组,如push()用于在数组末尾添加元素,pop()用于移除末尾元素,slice()用于提取数组的一部分,concat()用于连接两个或多个数组,以及map()、filter()、reduce()等用于...
在 JavaScript 编程中,处理数组是一项基本而重要的任务。数组的过滤操作是其中的一个常见...此外,了解其与 Array.prototype.map 和 Array.prototype.reduce 的结合使用,可以帮助你更好地编写高效且易于维护的代码。