reduce的用法

  对于js里面的数组的reduce方法以前是没有用过的,直到最近去看别人的代码的时候发现用的挺多的。所以在这里总结一下我碰到的情况。

基础

  reduce里面有两个参数function(total,currentValue, index,arr),{}其中第一个是回调函数,里面total就是初始值或者每次计算结束的返回值(必填),currentValue就是字面意思,每次循环运算当前值(必填),index每次下表(选填),arr指的是现在循环的数组(选填)。{}这一个代表total的初始值。

  由此我们可以对数据进行一些比如求和

1   let sum = array.reduce((preReturn,item)=>{
2          return preReturn+item
3      },0)

 

进阶

  reduce还可以把数组转化成对象,这在一些情况下十分的有用。比如这题在给定的数组中,找到出现次数最多的数字。出现次数相同时,返回数值最小的数字。

1 let obj = a.reduce((add,item)=>{
2             if(add[item]){
3                 add[item]++
4             }else {
5                 add[item] = 1
6             }
7             return add
8         },{})

  此处代码的作用是把数组转化成对象,键就是数组里面的值,值就是数组里面值出现的次数。我们然后再遍历对象就可以获得出现最多次的数。

 

posted @ 2022-05-02 10:56  爱吃猫的mouse  阅读(138)  评论(0)    收藏  举报