js数组 reduce函数
reduce
使用 reduce 与 reduceRight 函数可以迭代数组的所有元素,reduce 从前开始 reduceRight 从后面开始。下面通过函数计算课程点击数的和。
reduce函数的第一个参数是执行函数,第二个参数是初始值
- 传入第二个参数时将所有元素循环一遍
- 不传第二个参数时从第二个元素开始循环
执行函数的参数:
参数 | 说明 |
---|---|
prev | 上次调用回调函数返回的结果 |
cur | 当前元素值 |
index | 当前的索引值 |
array | 原数组 |
案例
- 统计元素出现的次数
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
- 取数组中的最大值
//取数组最大值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
- 取价格最高的商品
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万的商品名称
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));
- 数组去重
//数组去重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函数相关推荐
- JS数组reduce的25个高级用法
reduce作为ES5新增的常规数组方法之一,对比forEach .filter和map,在实际使用上好像有些被忽略,下面这篇文章主要给大家介绍了关于JS数组reduce你不得不知道的25个高级用法, ...
- JS进阶篇--JS数组reduce()方法详解及高级技巧
基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...
- JS进阶篇--JS数组reduce()方法详解及高级技巧 1
基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...
- JS 数组常用函数(数组合并、数组转字符串、顺序反转、范围选择、排序、插入数据、删除数据)
创建数组 var mycars = new Array(); mycars[0] = "Saab"; mycars[1] = "Volvo"; mycars[2 ...
- 转载:JS数组reduce()和reduceRight()方法
原文: http://www.w3cplus.com/javascript/array-part-8.html © w3cplus.com 很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到 ...
- js 数组 reduce() 方法
概念 reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值. MDN:https://developer.mozilla.org/zh-C ...
- JS数组reduce()方法
基本用法 arr.reduce(function(prev,cur,index,arr){ ... }, init);或者arr.reduce(function(prev,cur,index,arr) ...
- golang 实现js 数组 indexOf函数 根据元素找到数组下标
在数组中找到一个元素的下标,找不到返回-1 在javascript中可以这样写: var a = ['a','b','c','d'] console.log(a.indexOf('c')) // 2 ...
- JS的组成-JS数组方法-JS函数-系统化学习
JS Day01 什么是js的组成? ECMAScript(es) 其实就是js的规范(规则) DOM 文档对象模型 div span BOM 浏览器对象模型 JS的使用方式 行内样式的书写(不经常使 ...
- ES5(三)——数组新增函数every()、some()、map()、foreach()、filter()和reduce()汇总
文章目录 一.every() 二.some() 三.foreach() 四.map() 映射/对应 五.filter() 六.reduce汇总 一.every() 专门判断一个数组中是否所有元素都符合 ...
最新文章
- 前端网页、php与mysql数据库字符编码(解决中文等乱码问题
- CF724G Xor-matic Number of the Graph(线性基+组合数)
- python推荐淘宝物美价廉商品 2.0
- matlab显示的图片,手动保存时四周有白边
- 在Qt中用默认程序打开文件
- C#LeetCode刷题之#234-回文链表(Palindrome Linked List)
- 漫步数学分析六——聚点
- 天翼校园网连接不上服务器无响应,天翼校园网dns解析出错怎么办
- 图算法在反欺诈中的应用
- 来料加工企业使用ERP系统作用有哪些
- Python数据分析学习系列 六 数据加载、存储与文件格式
- 译(二十六)-Python怎么去除末尾的换行符?
- Arduino压电震动传感器
- Ubuntu共享文件夹设置
- 物联卡如何提高安全等级
- 鲍鱼数据集处理/matlab
- 如何理解反射信号淹没在上升沿中
- Java常见的一些面试题目
- 推荐系统模型论文阅读笔记
- rg.exe占用cpu导致卡顿解决办法