reduce()累计器理解与使用实例

2023-05-16

关于reduce()

reduce()语法:
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

arr.reduce((accumulator,curValue,curIndex,arr)=>{ 
	return accumulator+curValue
},initialValue)
  • accumulator 累计器
  • currentValue 当前值
  • currentIndex 当前索引
  • array 数组

如果提供了initialValue,accumulator取值为initialValue,currentValue取值数组中第一个值
如果没有提供initialValue,accumulator取值数组中第一个值,currentValue取值数组中第二个值

  1. 求数组累计值
let arr = [1,2,3,4,5]
let newArr = []
let one = arr.reduce((accumulator,currentValue,currentIndex,array)=>{
   newArr.push(accumulator+currentValue)
   return accumulator+currentValue
})
console.log(newArr,one) //[3, 6, 10, 15] 15
  1. 求对象累计值
let arr = [{x:1}, {x: 2}, {x: 3},{x:4},{x:5}]
let newArr = []
let one = arr.reduce((accumulator,currentValue,currentIndex,array)=>{
   console.log(accumulator,currentValue.x,accumulator+currentValue.x)
   if(accumulator !== 0){
      newArr.push(accumulator+currentValue.x)
   }
   return accumulator+currentValue.x
},0)
console.log(newArr,one) //[3, 6, 10, 15] 15
  1. 去重
let arr = [2,3,1,3,3,2];
let newArr = arr.reduce((accumulator,currentValue)=>{
   console.log(accumulator,currentValue,'11111111')
   if(!accumulator.includes(currentValue)){ // 累计值查找不到当前值的话,当前值拼接到累计值中
      return accumulator.concat(currentValue)
   }else{
      return accumulator
   }
},[])
console.log('newArr',newArr)   //[2, 3, 1]
newArr = newArr.sort((first,second)=>{  return  first - second}) // 升序
console.log('newArr',newArr)  //[1,2,3]
  1. 求元素的次数
 const arr = ['A', 'B', 'T', 'B', 'A'];
 let one = arr.reduce( (accumulator, currentValue) => {
    if (currentValue in accumulator) {
       console.log(accumulator,'currentValue')
       accumulator[currentValue]++;
    } else {
       accumulator[currentValue] = 1;
    }
    return accumulator;
 }, {});
 console.log(one) // {A: 2, B: 2, T: 1}

待续。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

reduce()累计器理解与使用实例 的相关文章

随机推荐

  • 爬取英语六级高频词

    文章目录 任务一 指定url二 发起请求并获取响应数据三 对响应数据进行数据解析四 持久化存储总结 任务 将网站中所有英语六级高频词以及翻译获取 xff0c 然后进行存储 一 指定url 网站中单词被分开存放在1 7页中 第1页的url x
  • 基于tkinter的第一个GUI小项目:背英语六级单词软件

    文章目录 任务1 引入库2 读入数据3 打开窗口4 初始化5 放置标签和按钮6 按钮事件7 演示 任务 基于爬取到的英语六级高频词 xff0c 利用python中的tkinter做出一个能起到考察词汇掌握情况作用的GUI 1 引入库 spa
  • Linux 6.1/6.2发布新补丁:缓解AMD处理器fTPM间歇性卡顿问题

    导读早些时候 xff0c AMD承认 xff0c 在Linux系统中开启AMD锐龙处理器的fTPM xff0c 将可能导致系统出现间歇性的卡顿 死机等情况 据悉 xff0c 该Bug在Linux 6 1内核中表现得最为明显 xff0c 这是
  • RHCE. Stratis 管理分层存储

    通过Stratis xff0c 便捷的使用精简配置 xff08 thin provisioning xff09 xff0c 快照 xff08 snapshots xff09 和基于池 xff08 pool based xff09 的管理和监
  • Jmeter性能测试(5)--JDBC Request

    jmeter xff08 五 xff09 JDBC Request jmeter中取样器 xff08 Sampler xff09 是与服务器进行交互的单元 一个取样器通常进行三部分的工作 xff1a 向服务器发送请求 xff0c 记录服务器
  • jQuery获取或设置元素的属性值prop/attr

    获取元素的属性值 固有属性 39 div prop color 自定义属性 39 div attr index html代码 lt a href 61 34 www baidu com 34 title 61 34 百度 34 gt 百度
  • Aop小案例

    AOP小案例 AOP Aspect Oriented Programming 面向切面编程 00P Object Oriented Programming 面向对象编程 xff0c 用对象化的思想来完成程序 AOP是对0OP的一个补充 xf
  • 详细介绍在ubuntu20.04如何安装ROS系统,附常见错误的解决办法

    为保证在安装的过程中配置无误 xff0c 建议先打开软件与更新的界面 xff0c 检查框出的选项是否打上了 检查完成后 xff0c 就可以开始安装啦 xff01 1 添加ROS软件源 将以下两个命令任意选择一个复制到ubuntu的终端执行
  • ROS1学习笔记:创建工作环境与功能包(ubuntu20.04)

    参考B站古月居ROS入门21讲 xff1a 创建工作环境与功能包 基于VMware Ubuntu 20 04 Noetic版本的环境 文章目录 一 工作空间介绍二 创建工作空间2 1 创建工作空间2 2 编译空代码的工作空间2 3 设置和检
  • SQL注入

    常用函数 SQL注入步骤 联合查询注入 函数与报错注入 SQL盲注 宽字节注入 sqlmap工具 常用函数 常用系统函数 基础信息函数功能system user 系统用户名user 用户名current user 当前用户名session
  • 信息收集*

    域名信息收集 DNS记录查询 whois查询 备案信息查询 子域名信息收集 常用工具 查询网站 网络信息收集 c段查询 nmap扫描 获取真实IP 敏感信息收集 目录后台扫描 指纹信息识别 系统指纹识别 中间件指纹识别 Web程序指纹识别
  • 将kali linux 的语言切换为中文

    重置root密码 导入kali后 xff0c 一般没有root密码 xff0c 需要重置root密码的 使用sudo passwd root 命令重置密码 换源 因为默认源下载东西特别慢 xff0c 所以我们需要换源 输入vim etc a
  • curl命令

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具 xff0c 可以说是一款很强大的http命令行工具 它支持文件的上传和下载 xff0c 是综合传输工具 xff0c 但按传统 xff0c 习惯称url为下载工具 htt
  • Docker基本命令

    一 安装docker 1 docker运行时需要到管理员用户权限 现在我们是普通用户 xff0c 终端内输入命令 su root切换为root用户 使用apt get update 更新软件源中的所有软件列表 2 使用apt install
  • Nmap常用命令

    nmap hostname ip 或者多个 ip 或者子网 192 168 123 iL ip txt 扫描 ip txt 的所有 ip A 包含了 sV xff0c O xff0c 探测操作系统信息和路由跟踪 一般不用 xff0c 是激烈
  • Jmeter性能测试(6)--元件的作用域与执行顺序

    jmeter xff08 六 xff09 元件的作用域与执行顺序 jmeter是一个开源的性能测试工具 xff0c 它可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的父子关系 xff0c 那么随着它们的顺序和所在的域不同 xff0c 它们
  • sql,逻辑漏洞,xss,反序列化思维导图

  • Arduino MAX30102脉搏心率传感器使用教程

    最近闲来无事 xff0c 得到了一块MAX30102 xff0c 手头刚好有多余的Arduino控制板 xff0c 就跑了个官方的案例 xff0c 发现测出来的脉搏和心率还是挺准的 xff0c 三星手机用过这个系列的芯片 xff0c 但是有
  • 两种方法用IDEA创建一个Servlet程序 新手教程详解

    1 Servlet 是什么 xff1f Java Servlet 是运行在 Web 服务器或应用服务器上的程序 xff0c 它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层 2
  • reduce()累计器理解与使用实例

    关于reduce reduce 语法 xff1a arr reduce callback accumulator currentValue index array initialValue arr reduce accumulator cu