reduce

使用 reduce 与 reduceRight 函数可以迭代数组的所有元素,reduce 从前开始 reduceRight 从后面开始。下面通过函数计算课程点击数的和。
reduce函数的第一个参数是执行函数,第二个参数是初始值

  • 传入第二个参数时将所有元素循环一遍
  • 不传第二个参数时从第二个元素开始循环
    执行函数的参数:
参数 说明
prev 上次调用回调函数返回的结果
cur 当前元素值
index 当前的索引值
array 原数组

案例

  1. 统计元素出现的次数
            function countArrayELem(array, elem) {return array.reduce((total, cur) => (total += cur == elem ? 1 : 0), 0);}let numbers = [1, 2, 1, 1, 5];console.log(countArrayELem(numbers, 1)); //3
  1. 取数组中的最大值
//取数组最大值function maxArray(array){return array.reduce(((max,cur)=>max<cur?cur:max),array[0]);}let arr=[5,3,6,1,2,9];console.log(maxArray(arr));//9
  1. 取价格最高的商品
         let cart = [{ name: "iphone", price: 12000 },{ name: "imac", price: 25000 },{ name: "ipad", price: 3600 }];function maxGoods(cart){return cart.reduce(((goods,cur)=>goods.price<cur.price?cur:goods),cart[0]);}console.log(maxGoods(cart)); //{name: 'imac', price: 25000}
  1. 获取价格超过1万的商品名称
 let goods = [{ name: "iphone", price: 12000 },{ name: "imac", price: 25000 },{ name: "ipad", price: 3600 }
];function getGoods(goods,price){return goods.reduce(((arr,cur)=>{if(cur.price>price) arr.push(cur);return arr;}),[]).map(cur=>cur.name);}console.table(getGoods(goods,10000));
  1. 数组去重
 //数组去重let arr=[2,3,1,4,1,2];function clearArray(array){return array.reduce(((arr,cur)=>{if(arr.includes(cur)=== false)//    arr.push(cur);  arr = [...arr, cur];return arr;}),[])};console.log(clearArray(arr));

js数组 reduce函数相关推荐

  1. JS数组reduce的25个高级用法

    reduce作为ES5新增的常规数组方法之一,对比forEach .filter和map,在实际使用上好像有些被忽略,下面这篇文章主要给大家介绍了关于JS数组reduce你不得不知道的25个高级用法, ...

  2. JS进阶篇--JS数组reduce()方法详解及高级技巧

    基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...

  3. JS进阶篇--JS数组reduce()方法详解及高级技巧 1

    基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...

  4. JS 数组常用函数(数组合并、数组转字符串、顺序反转、范围选择、排序、插入数据、删除数据)

    创建数组 var mycars = new Array(); mycars[0] = "Saab"; mycars[1] = "Volvo"; mycars[2 ...

  5. 转载:JS数组reduce()和reduceRight()方法

    原文: http://www.w3cplus.com/javascript/array-part-8.html © w3cplus.com 很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到 ...

  6. js 数组 reduce() 方法

    概念 reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值. MDN:https://developer.mozilla.org/zh-C ...

  7. JS数组reduce()方法

    基本用法 arr.reduce(function(prev,cur,index,arr){ ... }, init);或者arr.reduce(function(prev,cur,index,arr) ...

  8. golang 实现js 数组 indexOf函数 根据元素找到数组下标

    在数组中找到一个元素的下标,找不到返回-1 在javascript中可以这样写: var a = ['a','b','c','d'] console.log(a.indexOf('c')) // 2 ...

  9. JS的组成-JS数组方法-JS函数-系统化学习

    JS Day01 什么是js的组成? ECMAScript(es) 其实就是js的规范(规则) DOM 文档对象模型 div span BOM 浏览器对象模型 JS的使用方式 行内样式的书写(不经常使 ...

  10. ES5(三)——数组新增函数every()、some()、map()、foreach()、filter()和reduce()汇总

    文章目录 一.every() 二.some() 三.foreach() 四.map() 映射/对应 五.filter() 六.reduce汇总 一.every() 专门判断一个数组中是否所有元素都符合 ...

最新文章

  1. 前端网页、php与mysql数据库字符编码(解决中文等乱码问题
  2. CF724G Xor-matic Number of the Graph(线性基+组合数)
  3. python推荐淘宝物美价廉商品 2.0
  4. matlab显示的图片,手动保存时四周有白边
  5. 在Qt中用默认程序打开文件
  6. C#LeetCode刷题之#234-回文链表(Palindrome Linked List)
  7. 漫步数学分析六——聚点
  8. 天翼校园网连接不上服务器无响应,天翼校园网dns解析出错怎么办
  9. 图算法在反欺诈中的应用
  10. 来料加工企业使用ERP系统作用有哪些
  11. Python数据分析学习系列 六 数据加载、存储与文件格式
  12. 译(二十六)-Python怎么去除末尾的换行符?
  13. Arduino压电震动传感器
  14. Ubuntu共享文件夹设置
  15. 物联卡如何提高安全等级
  16. 鲍鱼数据集处理/matlab
  17. 如何理解反射信号淹没在上升沿中
  18. Java常见的一些面试题目
  19. 推荐系统模型论文阅读笔记
  20. rg.exe占用cpu导致卡顿解决办法

热门文章

  1. 局域网传文件_安卓用户福音!让文件传输摆脱数据线的束缚,自由穿梭
  2. 网页制作html新手代码,网页制作HTML基础标签代码大全
  3. 研发项目wbs分解简单案例_工程项目管理之WBS分解实例(五篇模版)
  4. Sybase数据库安全
  5. java sybase 驱动_Java连接Sybase数据库
  6. 2020.2.22基于L大源码的Lede x86 软路由精简版固件
  7. 【MODIS】MODIS数据的常用下载源
  8. MODIS、VIIRS数据下载教程
  9. 电商产品设计:购物车管理
  10. 基于R语言GD包的Risk Map制作(批量生成)