JS对象——数组处理方法reduce方法

 reduce()方法

1、该方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值;

2、该方法可以作为一个高阶函数,用于函数的compose

注意

该方法对于空数组是不会执行回调函数的。

语法

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
参数描述
function(total,currentValue,index,arr)

必传,用于执行每个数组元素的函数

参数描述
total必需。初始值,或者计算结束后的返回值
currentValue必需,当前元素
currentIndex可选。当前元素的索引
arr可选。当前元素所属的数组对象
initialValue可选,传递给函数的初始值

 

 

 

 

 

 

 

 

 

如果没有设置初始值,循环会从索引为零开始。

实际应用(一)

官方案例-累加计算

function getSum(total, num) {
  
    
     return total + num;

}
[65, 44, 12, 4].reduce(getSum)

//没有设置初始值,循环从数组索引为零开始执行。

实际应用(二)

 //判断数组是否连续
  let a1rr = [3, 4, 4, 6, 7, 8, 9, 10, 11];
  function getContinueFun2(arr) {
           let ress = arr.reduce((flag, cur, ind, arr) => {
            arr[ind + 1] - cur == 1 ? flag++ : ''
              return flag;
       }, 0);
      return ress == arr.length - 1
  }
  getContinueFun2(a1rr)

 

实际运用(三)

//每个值出现次数都为一。如果是返回true,否则返回false。

  function getUniNum(arr) {
           let obj = arr.reduce((obj, curr, i, arr) => {
                obj[curr] ?  obj[curr]++ : obj[curr] = 1;
                return obj
            }, {});
            return Object.values(obj).length === arr.length
  }
  getUniNum([1,'name',2,4,3,'name'])

新手上路,欢迎讨论。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值