ES6之reduce用法

ES6之reduce用法arr reduce function prev cur index arr arr 表示原数组 prev 表示上一次调用回调时的返回值 初始值 initcur 表示当前正在处理的数组元素 index 表示当前正在处理的数组元素的索引 init 1 求数组项之和 vararr 1 2 3 4 5 6 varsum arr reduce function prev cur returnprev cur 0 2 求数组项最大值 varmax arr redu

重点总结:
reduce() 是数组的归并方法,与forEach()、map()、filter()等迭代方法一样都会对数组每一项进行遍历,但是reduce() 可同时将前面数组项遍历产生的结果与当前遍历项进行运算,这一点是其他迭代方法无法企及的
arr.reduce(function(prev,cur,index,arr){

arr表示原数组
prev表示上一次调用回调时的返回值,初始值init
cur表示当前正在处理的数组元素
index表示当前正在处理的数组元素的索引
},init)














1.求数组项之和

var arr = [1,2,3,4,5,6]; var sum = arr.reduce(function (prev, cur){ 
    return prev + cur; },0) 

2.求数组项最大值

var max = arr.reduce(function( prev,cur){ 
    return Math.max(prev,cur) }) 

3.数组去重

var newArr = arr.reduce(function(prev, cur){ 
    prev.indexOf(cur) === -1 && prev.push(cur) return prev },[]) 

4.求字符串中字母出现的次数

const str = 'sfhjasfjgfasjuwqrqadqeiqsajsdaiwqdaklldflas-cmxzmnha'; const res = str.split('').reduce((accumulator, cur) => { 
    accumulator[cur] ? accumulator[cur]++ : accumulator[cur] = 1; return accumulator; }, { 
   }); 

5.扁平一个二维数组

var arr = [[1, 2, 8], [3, 4, 9], [5, 6, 10]]; var res = arr.reduce((x, y) => x.concat(y), []); 

6.对象数组去重

let person = [ { 
   id: 0, name: "小明"}, { 
   id: 1, name: "小张"}, { 
   id: 2, name: "小李"}, { 
   id: 3, name: "小孙"}, { 
   id: 1, name: "小周"}, { 
   id: 2, name: "小陈"}, ]; let obj = { 
   }; let peon = person.reduce((cur,next) => { 
    obj[next.id] ? "" : obj[next.id] = true && cur.push(next); return cur; },[]) console.log(peon); 

7.删除两个数组中id相同的对象

let arr = res.data; let arr1 = res.data1; arr = arr.filter( item => { 
    let tableData = arr1.map( v=>v.id) return !tableData.includes(item.id) }) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225906.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:16
下一篇 2026年3月17日 上午8:17


相关推荐

  • pytest fixtures_jig和fixture的区别

    pytest fixtures_jig和fixture的区别fixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

    2022年7月31日
    13
  • x201换风扇_x201i拆机风扇清理怎么办【图文】

    x201换风扇_x201i拆机风扇清理怎么办【图文】总所周知,笔记本室友大大小小的配置组装而成的,而笔记本同样的,有时也会存在着或多或少的故障,又或者有时由于好奇心的趋势,让我们相对笔记本内部的相关配置做更深一步的了解,这个时候,我们会选择对笔记本进行拆机,从而对风扇进行清理,但是我们又怕盲目的拆机有可能会对笔记本造成损坏,那么,x201i拆机风扇清理应该怎么办呢?下面,就让我们来认识一下,x201i拆机风扇清理应该怎么办?笔记本散热风扇使用时间长…

    2022年6月27日
    25
  • exe免杀加壳工具包_grep过滤不想要的

    exe免杀加壳工具包_grep过滤不想要的简介该工具是由Arks7使用Go语言开发的一个免杀生成器模板,目前可以过国内主流杀毒。GitHub地址:https://github.com/Arks7/Go_Bypass用法使用CobaltStrike生成payload,输出格式为Raw,4.3版本需要勾选X64,如图:将生成的文件放在Go_Bypass项目目录下,然后执行goenv-wGOPROXY=https://goproxy.io,direct配置代理,否则编译报错。然后运行gorunmain.go,使用默认配置一路回车即

    2022年8月20日
    11
  • 仿朋友圈相册图片选择以及画廊效果「建议收藏」

    仿朋友圈相册图片选择以及画廊效果「建议收藏」仿朋友圈相册图片选择以及画廊效果1.效果展示2.导入相关第三方库依赖3.编写选择图片页面a.编写布局b.编写Activityc.相册选择工具类部分代码d.相册4宫图适配器4.编写画廊页面a.编写画廊页面b.编写Activityc.画廊适配器5.源码1.效果展示该demo适配Android6、7、10。画廊效果,支持缩放效果。视频展示:(等我B站视频审核通过再来修改)部分截图:文章有点长,如果没时间就拉到最底下下载源码,再给个一键三联哈(* ̄︶ ̄)2.导入相关第三方库依赖站在巨人的肩膀上,

    2022年5月22日
    36
  • 使用javascript实现对于chineseocr的API调用「建议收藏」

    ChineseOCR在线API网页地址界面提供多种接口调用方式,比如在线调用、Javascriptapi调用、curlapi调用和pythonapi调用四种方式,本次使用javascriptapi调用的方式进行OCR识别在线Javascript工具在线工具网页链接在线Base64转化工具在线工具网页链接代码修改新增一个变量fill_with_base64_image接收图片的base64编码的字符串 将input内的<fill_with_base6.

    2022年4月6日
    38
  • SVG可伸缩的矢量图形「建议收藏」

    SVG可伸缩的矢量图形「建议收藏」SVG可伸缩的矢量图形

    2022年4月20日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号