js reduce函数的原理及用法

JavaScript reduce() 方法

1.定义和用法

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

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

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

2.浏览器支持

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

方法谷歌IE火狐safari欧朋
reduce()Yes9.03.0410.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 四舍五入后计算数组元素的总和:

  <button onclick="myFunction()">点我</button>
 
  <p>数组元素之和: <span id="demo"></span></p>
 
  <script>
    var numbers = [15.5, 2.3, 1.1, 4.7];
 
    function getSum(total, num) {
      return total + Math.round(num);
    }
    function myFunction(item) {
      document.getElementById("demo").innerHTML = numbers.reduce(getSum, 0);//这里的0,就是初始值,从0开始相加。如:第一步:0+15.5
    }
  </script>

   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,同时将加上之后的结果作为下次的初始值。

 



未完。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值