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 },{})
此处代码的作用是把数组转化成对象,键就是数组里面的值,值就是数组里面值出现的次数。我们然后再遍历对象就可以获得出现最多次的数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!