js reduce函数的原理及用法

JavaScript reduce() 方法

1.定义和用法

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减(是个数递减,不是值),最终计算为一个值。

reduce() 可以作为一个高阶函数,用于函数的 compose(组成)。

注意: reduce() 对于空数组是不会执行回调函数的。

2.浏览器支持

表格中的数字表示支持该方法的第一个浏览器版本号。

方法 谷歌 IE 火狐 safari 欧朋
reduce() Yes 9.0 3.0 4 10.5

3.语法

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

4.参数

参数 描述
function(total,currentValue, index,arr) 必需。用于执行每个数组元素的函数。
函数参数:
参数 描述
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。
initialValue 可选。传递给函数的初始值

5.技术细节

返回值: 返回计算结果
JavaScript 版本: ECMAScript 3

 6.实例

      6.1 作为累加器,数组中的每个值(从左到右)开始缩减(是个数递减,不是值)

    var numbers = [65, 44, 12, 4];

	function getSum(total, num) {
	   console.log(total+num)
	   return total + num;

	}
	numbers.reduce(getSum);

    6.2 四舍五入后计算数组元素的总和:

  
 
  

数组元素之和:

   6.3 计数器

const countOccurrences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0);
countOccurrences([1, 2, 3, 2, 2, 5, 1], 1);

  ps:当参数value===v( arr )时,给上一次的加和+1,即,a+1。否则,还是a 。

  循环数组,每遇到一个值与给定值相等,即加1,同时将加上之后的结果作为下次的初始值。

 



未完。。。

你可能感兴趣的:(JavaScript)