ES6数组reduce的妙用

2023-05-16

定义和用法

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

reduce() 可以作为一个高阶函数,用于函数的 compose。

注意: reduce() 对于空数组是不会执行回调函数的。


array.reduce(function(total, currentValue, currentIndex, arr), initialValue)  
参数描述
function(total,currentValue, index,arr)必需。用于执行每个数组元素的函数。
函数参数:
参数描述
total必需。初始值, 或者计算结束后的返回值。
currentValue必需。当前元素
currentIndex可选。当前元素的索引
arr可选。当前元素所属的数组对象。
initialValue可选。传递给函数的初始值

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

let  arr = ['A', 'B', 'T', 'B', 'A'];
 
let stringNum = arr.reduce((pre,cur)=>{
  if(cur in pre){
    pre[cur]++
  }else{
    pre[cur] = 1 
  }
  return pre
},{})
console.log(stringNum); //{'A': 2, 'B': 2, 'T': 1}

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

ES6数组reduce的妙用 的相关文章

  • 在 Swift 4 中使用 reduce 时出现“上下文闭包类型需要 2 个参数”错误

    以下代码在 Swift 3 中编译 extension Array where Element Equatable var removeDuplicate Element return reduce 0 0 contains 0 1 0 0
  • Swift 通用数组函数查找不匹配项的元素的所有索引

    Swift 3 尝试编写一个通用数组扩展来获取不等于值的项目的所有索引 example let arr String Empty Empty Full Empty Full let result Int arr indexes ofItem
  • 减少字典列表的优雅方法?

    我有一个字典列表 每个字典都包含完全相同的键 我想找到每个键的平均值 并且我想知道如何使用reduce 或者如果不可能的话 使用另一种比使用嵌套更优雅的方式 fors 这是列表 accuracy 0 78 f measure 0 81693
  • 从数组创建对象树

    我想从数组中创建一个对象树 这里向我提供了一个很好的解决方案 我发现了 reduce 方法 Javascript 使用 object create 从字符串构建一棵树实际上 我的需求有点不同 而且我无法适应提供的代码 所以我回到这里寻求帮助
  • 错误:“int”对象不可下标 - 在reduce函数中使用lambda时

    运行以下代码时 出现以下错误 Traceback most recent call last File Users crosseyedbum Documents Visual Studio Code Fundamentals of Pyth
  • 如何提前破解reduce()方法?

    我怎样才能打破迭代reduce method for for var i Things length 1 i gt 0 i if Things i lt 0 break reduce Things reduce function memo
  • 将reduce函数转换为适用于IE

    好吧 几个月前我得到了一些帮助 想出了一个解决方案来记录数组中的元素数量 循环遍历多个数组并记录每个元素的计数 这个解决方案对我来说非常有效 直到我意识到它正在使用ES6这是不支持的IE 11 我尝试将其转换为使用函数而不是箭头函数 以便它
  • Hadoop 中的reduce 任务什么时候开始?

    Hadoop中reduce任务什么时候开始 它们是否在映射器完成一定百分比 阈值 后开始 如果是这样 这个阈值是固定的吗 通常使用什么样的阈值 reduce阶段有3个步骤 shuffle sort reduce Shuffle 是减速器从每
  • 【JavaScript】Set方法

    基本用法 ES6 提供了新的数据结构 Set 它类似于数组 但是成员的值都是唯一的 没有重复的值 Set 本身是一个构造函数 用来生成 Set 数据结构 const s new Set 2 3 5 4 5 2 2 forEach x gt
  • 【JavaScript】Set方法

    基本用法 ES6 提供了新的数据结构 Set 它类似于数组 但是成员的值都是唯一的 没有重复的值 Set 本身是一个构造函数 用来生成 Set 数据结构 const s new Set 2 3 5 4 5 2 2 forEach x gt
  • 与函数式编程中的“fold”函数等效的“pythonic”是什么?

    在 Haskell 中实现如下目标的最惯用的方法是什么 foldl 0 1 2 3 4 5 gt 15 或者 Ruby 中的等价物 1 2 3 4 5 inject 0 m x m x gt 15 显然 Python 提供了reduce函数
  • JavaScript中reduceRight的原生实现是错误的

    对于关联运算f在数组的元素上a 以下关系应该成立 a reduce f 应该等于a reduceRight f 事实上 它确实适用于结合运算和交换运算 为了 例子 const a 0 1 2 3 4 5 6 7 8 9 const add
  • Spark Python - 如何使用reduce by key来获取最小值/最大值

    我有一些城市的最高和最低温度的样本数据 格式为 csv Mumbai 19 30 Delhi 5 41 Kolkata 20 40 Mumbai 18 35 Delhi 4 42 Delhi 10 44 Kolkata 19 39 我想使用
  • 减少功能如何工作?

    据我了解 reduce 函数需要一个列表l和一个函数f 然后 它调用该函数f列表的前两个元素 然后重复调用该函数f与下一个列表元素和上一个结果 因此 我定义了以下函数 以下函数计算阶乘 def fact n if n 0 or n 1 re
  • 如何仅通过使用reduce函数在python中创建字数统计输出?

    我有以下元组列表 a 1 a 1 b 1 c 1 a 1 c 1 我想知道我是否可以利用 pythonreduce函数来聚合它们并产生以下输出 a 3 b 1 c 2 或者如果还有其他方法 我也想知道 循环也可以 使用似乎很难实现reduc
  • 前端基础:回顾es6相关知识

    Author note 题记 ECMAscript is international standard of javascript ECMA 是 js的国际标准版语言 let and const 为什么之前用var现在需要用let cons
  • 【ES6】解构语句中的冒号(:)

    在解构赋值语法中 冒号 的作用是为提取的字段指定一个新的变量名 让我们以示例 const billCode code version route query 来说明 billCode code version 表示从 route query
  • 根据id将数组中的n个对象合并到一个数组中

    我正在尝试合并下面列出的对象数组中的 n 个对象 我尝试使用reduce方法 但我不明白我做错了什么 对于高级js方法来说仍然是新的 const array data 1 foo bar test true 4 foo boor data
  • Java流减少

    我有以下示例数据集 我想使用基于方向值的 Java 流 api 对其进行转换 减少 Direction int IN 1 2 OUT 3 4 OUT 5 6 7 IN 8 IN 9 IN 10 11 OUT 12 13 IN 14 to D
  • Javascript reduce() 查找字符串中最短的单词

    我有一个函数可以找到字符串中最长的单词 function findLongestWord str var longest str split reduce longestWord currentWord gt return currentW

随机推荐

  • golang go语音 之 结构体

    一 结构体基础 Go语言中没有 类 的概念 xff0c 也不支持 类 的继承等面向对象的概念 Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性 go自定义类型 例如 xff1a 类型定义 打印出是 NewInt 类型
  • goroutine 调度器原理详解 - 进程 线程 协程 之 go语言篇

    一 先理解一下 进程和线程通俗易懂文章 xff1a 1122条消息 线程与进程 xff0c 你真得理解了吗 进程和线程 云深i不知处的博客 CSDN博客 什么是进程 先给一个定义 xff1a 进程是一个具有一定独立功能的程序在一个数据集合上
  • Go语言内存 Go内存 golang内存

    原文 xff1a 一文彻底理解Go语言栈内存 堆内存 360doc com 一 为什么计算机需要内存 代码的本质 xff1a 指令和数据 指令 xff1a 中央处理器CPU可执行的指令 数据部分 xff1a 常量变量等 代码包含了指令 xf
  • 如何卸载Ubuntu软件

    方法 1 使用Synaptic软件包管理器进行卸载 1 打开软件包管理器 Ubuntu自带了一个GUI xff08 Graphical User Interface xff0c 图形化用户界面 xff09 软件包管理器 xff0c 它可以让
  • operator-framework生态之operator-sdk入门和安装 operator实战

    推荐 近期推荐实战 20230424 kubebuilder实战 https www cnblogs com bolingcavalry archive 2021 08 25 15183342 html 推荐阅读 单个CRD所定义的能力是有
  • MATLAB求解接地金属槽内电位分布

    基于MATLAB有限差分法中的迭代法求解接地金属槽内电位分布 要求有限差分法MATLAB编写运行结果全部代码 要求 运用MATLAB求解接地金属槽内点位分布 xff0c 精度 行数M 列数N自己定义 有限差分法 有限差分法是基于差分原理的一
  • 51单片机水位检测

    基于单片机的楼顶水箱水位监控系统设计 大楼的楼顶水箱容量有限 xff0c 要求实时显示其水位 xff0c 自动开停水泵控制水位在合理范围 利用单片机为核心构成控制系统 xff0c 选择传感器检测水位 水泵电机温度 xff08 防止过热损坏
  • 关于HC05 蓝牙模块与与蓝牙模块连接

    两个蓝牙模块配对通信 在通常的电子设计中 xff0c 一般采用蓝牙模块与上位机 xff08 手机 xff09 连接来与电子设备通信 xff0c 实现对电子设备的控制 当然也可以通过WiFi模块等其他通信模块进行通信 这里就介绍一下蓝牙模块之
  • Gazebo配置与控制不同的无人机 仿真

    PX4 Firmware 配置与控制不同的无人机 配置方法控制方法 XTDrone目前支持多旋翼飞行器 xff08 multirotor xff09 固定翼飞行器 xff08 plane xff09 可垂直起降固定翼飞行器 xff08 vt
  • 基于采样的路径规划算法RRT的优化:RRT*,Kinodynamic-RRT*,Anytime-RRT *,Informed RRT *

    基于采样的路径规划算法RRT的优化 RRT 算法Kinodynamic RRT Anytime RRT Informed RRT 关于搜索树按搜索方向生长的计算方法 基本的基于采样的路径规划算法RRT xff0c 在地图中进行采样取点 xf
  • 碰到的bug,解决方法

    问题解决 1 build Error Unable to find source space home xxx src 在新建的工作空间下进行 catkin build 编译工作空间 xff0c 工作空间下没有产生 devel logs b
  • Geometrically Constrained Trajectory Optimization for Multicopters 论文解析

    关于多旋翼几何约束轨迹优化 MINCO 轨迹类几何约束实验 Geometrically Constrained Trajectory Optimization for Multicopters 一文由浙江大学博士 汪哲培 2022年发表在I
  • Fast-planner 和 Ego-planner 比较

    Fast planner 和 Ego planner 比较 Fast PlannerEgo planner Fast planner和Ego planner都是无人机路径规划中常见的算法 xff0c 但它们的实现方式和目标略有不同 Fast
  • Teach-Repeat-Replan: A Complete and Robust System for Aggressive Flight in Complex Environments 论文笔记

    Teach Repeat Replan 飞行走廊生成方法凸多面体膨胀CPU加速GPU加速飞行走廊生成与环路消除 时空全局轨迹优化空间轨迹优化时间轨迹优化 在线局部重规划局部重规划框架 飞行走廊生成方法 围绕 teaching traject
  • ovn实验手册

    参考文档 openstack ovn结合官方文档 ovn实践参考
  • 蓝桥杯 小数第n位 问题的几种解法

    蓝桥杯 小数第n位 问题的几种解法 题目描述解法1 根据手动计算除法的过程 题目描述 我们知道 xff0c 整数做除法时 xff0c 有时得到有限小数 xff0c 有时得到无限循环小数 如果我们把有限小数的末尾加上无限多个 0 xff0c
  • 解决Vmware虚拟机无法打开Ubuntu的问题

    1 xff0c 问题 很多同学会在Window PC机上使用Vmware虚拟机来搭建Linux开发环境 xff08 如Ubuntu xff09 xff0c 使用过程中难免会出现Ubuntu崩溃 异常关闭等现象 xff0c 此时 xff0c
  • antd 表单动态添加表单项编辑回显数据

    在做一些后台管理会用到很多的表单 xff0c 比如动态项表单 xff0c 如下图这样的 话不多说 xff0c 上代码 创建修改版本 import React from 34 react 34 import Form Notification
  • 二进制流文件下载

    在做一些文件下载的时候 xff0c 后端返回的二进制流文件 xff0c 这里前端的兄弟姐妹就需要处理一下了 直接上代码 xff1a 下载 export function download id return request url 96 r
  • ES6数组reduce的妙用

    定义和用法 reduce 方法接收一个函数作为累加器 xff0c 数组中的每个值 xff08 从左到右 xff09 开始缩减 xff0c 最终计算为一个值 reduce 可以作为一个高阶函数 xff0c 用于函数的 compose 注意 r