首页 > 其他分享 >arr.reduce函数的用法

arr.reduce函数的用法

时间:2023-06-23 14:14:53浏览次数:27  
标签:arr reduce 用法 item add let total

1. 语法:reduce(function(total,currentValue, index,arr){},{})

  reduce接收两个参数,第一个参数是函数,第二个参数是第一个参数中total的初始值
  (1) 第一个参数 function 中

    total就是初始值或者每次计算结束的返回值(必填)

    currentValue就是字面意思,每次循环运算当前值(必填)

    index每次下标(选填)

    arr指的是现在循环的数组(选填)
  (2) 第二个参数是第一个参数中total的初始值

2. 用法

  (1) 数组求和

let arr = [1,2,3,4,5]

let total = arr.reduce((total, item) => {
   return total += item
}, 0)

console.log(total)

  (2) 数组去重

let arr = [1,2,3,3,3,3,4,4,4,5]

let newArr = arr.reduce((all, item) => {
   if (!all.includes(item)){
      all.push(item)
   }
   return all
}, [])

console.log(newArr)

(3) 统计数组或者字符串中出现的次数

let arr = [1,2,3,3,3,3,4,4,4,5]

let obj = arr.reduce((add, item) => {
  if (add[item]) {
    add[item] ++
  } else {
    add[item] = 1
  }
  return add
}, {})

console.log(obj)

 

标签:arr,reduce,用法,item,add,let,total
From: https://www.cnblogs.com/xingyuan-wang/p/17499078.html

相关文章

  • ArrayList和LinkedList的区别详解
    感谢巨人的肩膀,原作者:https://blog.csdn.net/qing_gee/article/details/108841587/ArrayList和LinkedList有什么区别,是面试官非常喜欢问的一个问题。可能大部分小伙伴和我一样,能回答出“ArrayList是基于数组实现的,LinkedList是基于双向链表实现的。”关于这一点,我之前的......
  • IntStream的用法详解
    IntStream是一种特殊的Stream,用来提供对int类型数据进行相关的stream操作,下面我们一起来看下。1生成IntStream1.1IntStream.generate用来生成无限个数整数对应的stream,对于需要持续获取随机值的场景可以考虑使用这种方式。publicvoidtestGenerate(){Randomrand......
  • js中的splice用法
    非常感谢原博主,在菜鸟教程上给我看蒙了,看完这篇感觉清晰了很多,感谢:https://so.csdn.net/so/search?q=splice&spm=1001.2101.3001.7020splice()函数详解splice()方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数......
  • canvas用法
    感谢原文:****点击跳转原文:canvas详细教程原文canvas是什么?简单来说,``是HTML5中的标签,它是一个容器,可以使用JS在其中绘制图形或文字。MDN:``是一个可以使用脚本(通常为JavaScript)来绘制图形的HTML元素。例如,它可以用于绘制图表、制作图片构图或者制作简单的动画。主要聚......
  • MYSQL中find_in_set函数用法详解
    感谢参考:https://blog.csdn.net/carefree31441/article/details/1195636851、官方涵义(MySQL手册中语法说明)FIND_IN_SET(str,strlist):str要查询的字符串,strlist需查询的字段,参数以”,”分隔,形式如(1,2,6,8,10,22);该函数的作用是查询字段(strlist)中是否包含(str)的结果,返......
  • UE5 C++ TArray
    概述TArray是UE4中最常用的容器类。其速度快、内存消耗小、安全性高TArray类型由两大属性定义:元素类型和可选分配器元素类型是存储在数组中的对象类型。TArray被称为同质容器。换言之,其所有元素均完全为相同类型。单个TArray中不能存储不同类型的元素。分配器常被省略,默......
  • 关于技术社区中的 Caveat 用法
    我们在逛StackOverflow社区时,除了学习技术之外,也可以学习老外们专业的英语,比如我今天学到一个新的单词:caveat(警告,附加说明)以前表达这个意思,我都是用note,显然Caveat要更加专业一些。在技术社区中,Caveat(警示)是指在使用某项技术、工具或方法时需要注意的注意事项、限制条件......
  • sprintf fprintf用法区别
    1、输出目标不一样printf:输出到标准输出sprintf输出到指定字符串中,参数比printf多了一个char*(目标字符串地址)fprintf输出到指定文件设备中,参数比printf多了一个文件指针file*2、原型1、intfprintf(file*stream,constchar*format,……)fprint......
  • 手撕ArrayList底层源码
    publicabstractclassAbstractList<E>extendsAbstractCollection<E>implementsList<E>{//外部操作数protectedtransientintmodCount=0;//2}publicclassArrayList<E>extendsAbstractList<E>implementsList<E>{......
  • Oracle Analyze 表分析的作用及基本用法
    OracleAnalyze表分析的作用及基本用法目录OracleAnalyze表分析的作用及基本用法01概述02Analyze使用场景03执行分析语法介绍04常用的分析语句05长时间不做表分析可能造成的影响:06加锁的问题07ORACLE的自动统计信息收集任务08修改自动统计信息收集job的执行时间使用......