位置: IT常识 - 正文

在 js 中,reduce() 的详解 以及使用方法(js中reduce用法)

编辑:rootadmin
在 js 中,reduce() 的详解 以及使用方法 reduce():

推荐整理分享在 js 中,reduce() 的详解 以及使用方法(js中reduce用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js中reduce用法,js reduce使用场景,jsreduce用法,js中的reduce,js中reduce用法,js reduce使用场景,js中reduce用法,js中reduce用法,内容如对您有帮助,希望把文章链接给更多的朋友!

reduce()方法为归并类方法,最常用的场景就是,计算数组中的每一项的总和。

reduce() 方法会遍历数组的每一项,他接收两个参数:

第一个参数:每次遍历都会调用的函数,而这个函数有接收四个参数,分别是:前一个值、当前项、项目的索引和数组对象,而这个函数的返回值,回传给下一次遍历时,执行的这个方法的第一个参数。

第二个参数:归并基础的初始值

我们看一下例子: reduce()怎么用?

let arr = [1,2,3,4,5] arr.reduce((prev,cur)=>{ return prev+cur })

上面的这段代码,是用来计算数组总和的,reduce()方法中,只传了第一个参数,也就是只传了一个函数,但第二个参数、初始值没有传,当第二个值没有传的时候,第一次循环,prev的值,默认为数组的第一项,而cur的值为数组的第二项,也就是第一次循环,会return 1+2,这个时候,第一次循环返回的结果回传给下一次循环中方法的第一个参数,也就是说、第二次循环方法中prev的值,是第一次循环方法返回的结果

let arr = [1,2,3,4,5]arr.reduce((prev,cur)=>{ return prev+cur},10)在 js 中,reduce() 的详解 以及使用方法(js中reduce用法)

我们传入一下第二个参数,第一个循环,prev的值为reduce的第二个参数,也就是"归并基础的初始值",而cur的值为数组的第一项,第一项循环会返回10+1

总结:

1.当reduce()方法的第二个值为空时,第一次循环方法中的第一个参数(prev)为数组的第一项值,第二个参数(cur)为数组的第二项值,反之,第一次循环方法中的第一个参数(prev)为reduce的第二个参数值,第二个参数(cur)为数值的第一项值。

2.reduce()方法的第一个参数,就是每次遍历都会执行的匿名函数,当前函数的返回值就会传给下一次执行函数的第一个值。也就是prev

reduce 应用场景:

1.数组里所有值的和

var arr = [0,1,2,3]; var value = arr.reduce((pre, cur) => { return pre + cur; }, 0); console.log(value);// 输出:6

2.累加数组中对象的值

var arr = [{ x: 1 }, { x: 2 }, { x: 3 }]; var value = arr.reduce((pre, cur) => { return pre + cur.x; }, 0); console.log(value);// 输出:6

3.将二维数组转为一维数组

var arr = [ [0, 1], [2, 3], [4, 5], ]; var value = arr.reduce((pre, cur) => { return pre.concat(cur); }, []); console.log(value); // 输出:[0, 1, 2, 3, 4, 5]

4.计算数组中每个元素出现的次数

var arr = ["a", "b", "a", "c", "c", "c"]; var value = arr.reduce((pre, cur) => { if (cur in pre) { pre[cur]++; } else { pre[cur] = 1; } return pre; }, {}); console.log(value); // 输出:{a: 2, b: 1, c: 3}

5.按属性对object分类

var people = [ { name: "tom", age: 17, birthYear: 2021 }, { name: "tony", age: 21, birthYear: 2021 }, { name: "bob", age: 18, birthYear: 2020 }, { name: "bob", age: 18, birthYear: 2021 }, { name: "bob", age: 18, birthYear: 2019 }, ]; function groupBy(arr, property) { if (!Array.isArray(arr)) return []; return arr.reduce((pre, obj) => { var newObj = { [property]: obj[property], data: [obj], }; if (!pre.length) { return [newObj]; } for (let i = 0; i < pre.length; i++) { let item = pre[i]; if (item[property] === obj[property]) { item.data = [...item.data, obj]; return pre; } } return [...pre, newObj]; }, []); } var value = groupBy(people, "birthYear");

返回值:

 6.数组去重:

var arr = [1, 2, 3, 2, 2, 3, 5, null, null, 0, false, false, true]; var value = arr.reduce((pre, cur) => { return pre.includes(cur) ? pre : pre.concat(cur); }, []); console.log(value);//[1, 2, 3, 5, null, 0, false, true]
本文链接地址:https://www.jiuchutong.com/zhishi/298631.html 转载请保留说明!

上一篇:JavaScript -- Map对象及常用方法介绍(js map())

下一篇:权限管理实现的两种方式(详解)(权限管理实现的功能包括)

  • 青桔单车怎么扫码骑行(青桔单车怎么扫不到二维码)

    青桔单车怎么扫码骑行(青桔单车怎么扫不到二维码)

  • 华为手机怎么把旧手机导入新手机(华为手机怎么把繁体字调成简体字)

    华为手机怎么把旧手机导入新手机(华为手机怎么把繁体字调成简体字)

  • iphoneqq音乐怎么打开桌面歌词(iPhoneQQ音乐怎么开启桌面歌词)

    iphoneqq音乐怎么打开桌面歌词(iPhoneQQ音乐怎么开启桌面歌词)

  • 弱光是什么意思(弱光的症状)

    弱光是什么意思(弱光的症状)

  • 为什么有的人朋友圈打开才能看到(为什么有的人朋友圈无法点赞)

    为什么有的人朋友圈打开才能看到(为什么有的人朋友圈无法点赞)

  • cpu会烧坏吗(手机cpu会烧坏吗)

    cpu会烧坏吗(手机cpu会烧坏吗)

  • 设三天朋友圈意味什么(设三天朋友圈的人)

    设三天朋友圈意味什么(设三天朋友圈的人)

  • 荣耀30和30pro区别(荣耀30和荣耀30pro差在哪)

    荣耀30和30pro区别(荣耀30和荣耀30pro差在哪)

  • 视频怎么以文件形式发送(视频怎么以文件的形式发送到qq)

    视频怎么以文件形式发送(视频怎么以文件的形式发送到qq)

  • 22.5w快充充满要多久(22.5w快充充满要多少钱)

    22.5w快充充满要多久(22.5w快充充满要多少钱)

  • 视频聊天看不到对方的图像是因为什么原因(视频聊天看不到对方的图像)

    视频聊天看不到对方的图像是因为什么原因(视频聊天看不到对方的图像)

  • 苹果x快充没有滴2声(苹果x没有快充了)

    苹果x快充没有滴2声(苹果x没有快充了)

  • tp-link id是什么(tp-link-id)

    tp-link id是什么(tp-link-id)

  • iphone11没有指纹解锁吗(苹果11没有指纹锁)

    iphone11没有指纹解锁吗(苹果11没有指纹锁)

  • 抖音消息怎么判断已读(抖音消息怎么判断对方有没有看到)

    抖音消息怎么判断已读(抖音消息怎么判断对方有没有看到)

  • 怎么取消白名单里的联系人(苹果手机怎么取消白名单)

    怎么取消白名单里的联系人(苹果手机怎么取消白名单)

  • dbms具有什么功能(dbms的组成和功能)

    dbms具有什么功能(dbms的组成和功能)

  • 淘宝可以删除购买记录吗(淘宝删除购物车在哪里找)

    淘宝可以删除购买记录吗(淘宝删除购物车在哪里找)

  • 华为gt2运动版和时尚版的区别(华为gt2运动版和活力版区别)

    华为gt2运动版和时尚版的区别(华为gt2运动版和活力版区别)

  • 苹果x手机屏幕密码设置(苹果x手机屏幕不好使了怎么办)

    苹果x手机屏幕密码设置(苹果x手机屏幕不好使了怎么办)

  • 为什么淘宝被限制登录(为什么淘宝被限制购买商品了)

    为什么淘宝被限制登录(为什么淘宝被限制购买商品了)

  • 实现网络的四个要素(网络的四要素)

    实现网络的四个要素(网络的四要素)

  • 商家扫码花呗多久到账(商家扫码花呗多久到账户)

    商家扫码花呗多久到账(商家扫码花呗多久到账户)

  • 华为nova5支持无线充电吗(华为nova5支持无线键盘吗)

    华为nova5支持无线充电吗(华为nova5支持无线键盘吗)

  • 使用Axios前后端交互(超详细)建议点赞收藏(前端axios请求怎么中断)

    使用Axios前后端交互(超详细)建议点赞收藏(前端axios请求怎么中断)

  • 教你一文解决 js 数字精度丢失问题(js遇到的问题)

    教你一文解决 js 数字精度丢失问题(js遇到的问题)

  • 交增值税及附加税怎么做账
  • 经营范围变更银行不变更有影响吗
  • 高新企业奖励金怎么领
  • 股权转让所得如何申报个税
  • 成本费用利润率反映什么
  • 速达3000货品怎么入库
  • 行政单位利息收入是非税收入吗
  • 销售退款怎么做分录
  • 工业企业制造费用具体怎么摊
  • 普通发票为什么没有章
  • 建筑工程类发票
  • 收到备付金怎么做分录
  • 营业账簿印花税包括什么
  • 二甲醚增值税税率9%
  • 增值税专用发票有效期是多长时间
  • 城建税上月少计提本月怎么做账
  • 辅助核算的内容
  • 出售固定资产增值税税率最新2022
  • 财务费用的冲减什么意思
  • avsched32.exe是什么进程 avsched32进程有什么作用
  • win10系统白名单怎么设置
  • navapp.exe - navapp是什么进程文件 作用是什么
  • 个人开工程款票在哪开票
  • 默认网关不可用的解决办法
  • 营改增前甲供材施工企业如何缴纳企业所得税
  • createrectrgn
  • 怎么解锁城堡上空
  • 绿化管理服务经营范围
  • 其他免税销售额>0时,免税性质代码不能为空是什么意思
  • mac apache php
  • 百度地图定位不更新
  • 社保主要有以下哪些方面
  • 税控会计分录
  • 购买方如何开具红字发票给销售方
  • 什么是公司帐户
  • 公司款能转到个人卡上吗
  • python多线程编程案例
  • 织梦模板官网
  • mongodb介绍
  • 投资收益交增值税税率是多少
  • 收据的种类是有几种
  • 存货成本明细科目表
  • 合伙企业需要做工商吗
  • 营改增后企业所得税是国税还是地税
  • sqlserver复制需要有实际的服务器名称
  • 银行理财产品是单利还是复利
  • 存货资产评估方法
  • 自建的固定资产折旧计入哪里
  • 长期待摊费用未摊销完一次性处理怎么走
  • 缴纳房产税和城镇房产税
  • 赠送样品视同销售增值税该怎么做账务处理呢?
  • 结转周转材料成本
  • 业务提成一般怎么拿的
  • 旅游业小规模纳税人税率是多少
  • 拿支票取钱
  • 装修材料增值税发票明细表
  • 工程尾款要计入什么科目
  • 存货成本计算方法有几种?分别是什么?
  • sql语句的执行方式
  • 此数据库中不存在用户或角色
  • 怎样修改windows开机密码
  • linux file-nr
  • winnook.exe - winnook是什么进程
  • win10系统怎么设置ip地址
  • linux定时任务实现原理
  • wire软件下载
  • ubuntu搭建android开发环境
  • shell脚本通过expect实现自动单边无密登录功能
  • js怎么检查错误
  • sequelize-cli
  • Node.js中的什么模块是用于处理文件和目录的
  • 配置命令提示符怎么打开
  • javascript中用于声明变量的关键字
  • js中切割字符串
  • nodejs搭建网站
  • jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
  • 化妆品的消费税税率是多少
  • 广西12366医保缴费
  • 开发商代收代缴电费能开发票吗
  • 贵州税务开票系统登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设