JavaScript数组reduce()方法怎么用
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容主要讲解"JavaScript数组reduce()方法怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JavaScript数组reduce()
千家信息网最后更新 2025年01月23日JavaScript数组reduce()方法怎么用
本篇内容主要讲解"JavaScript数组reduce()方法怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JavaScript数组reduce()方法怎么用"吧!
将某个值减去数组中的每个元素:
var items = [5, 10, 15];var reducer = function minus(minusSum, item) { return minusSum - item;}var total = items.reduce(reducer, 61);console.log(total); // 31
上例中初始值为number
类型,所以返回的结果也是number
类型的,如果我们想返回object类型的值,也可以传入object类型的初始值。
var items = [5, 10, 15];var reducer = function minus(minusSum, item) { minusSum.sum = minusSum.sum - item; return minusSum;}var total = items.reduce(reducer, {sum: 61});console.log(total); // {sum: 31}
以上两例都是reduce()
简单的用法。reduce()
是一个很强大的方法,我们还可以用它来处理更复杂的业务逻辑。
例如,求购物车中商品的总价,购物车数据如下:
var goodList = [ { good: 'paper', price: 12 }, { good: 'book', price: 58 }, { good: 'CD', price: 15 } ]
然后运用reduce()
方法可以轻松的获得所有商品的总价格:
var count = goodList.reduce(function(prev, cur) { return cur.price + prev;}, 0);console.log(count); // 85
如果用户有10元的优惠券的话,我们只需要将 -10作为初始值传入reduce()
方法中就可以了。
var count = goodList.reduce(function(prev, cur) { return cur.price + prev;}, -10);console.log(count); // 75
我们给例子增加一点难度,商城在搞促销,对商品有一定的折扣,我们应该如何求得商品的总价格呢?利用reduce
方法也可以很容易解决的。
var goodList = [ { good: 'paper', price: 12 }, { good: 'book', price: 58 }, { good: 'CD', price: 15 } ];var dis = { paper: 0.5, book: 0.8, CD: 0.2}var count = goodList.reduce(function(prev, cur) { return cur.price + prev;}, -10);var qcount = goodList.reduce(function(prev, cur) { return cur.price * dis[cur.good] + prev;}, 0);console.log(count, qcount); // 75 55.400000000000006
我们这里就忽略JS中的精度问题吧,因为这里主要讲解reduce()
方法的用法。
再举一个例子,如何求得一串字符串中每个字母出现的次数?如果我们不用reduce()
方法也可以实现的,
代码如下:
var arrString = 'fghffgaga';var strArr = arrString.split('');var rel = {};var count = 1;for (var i = 0; i < strArr.length; i++) { for (var j = i + 1; j < strArr.length; j++) { if (strArr[i] == strArr[j]) { count++; strArr.splice(j, 1); j = j - 1; } } var qcount = count; count = 1; rel[strArr[i]] = qcount; }console.log(rel); // {f: 3, g: 3, h: 1, a: 2}
利用reduce()方法的代码如下:
var arrString = 'fghffgaga';var rel = arrString.split('').reduce(function(res, cur) { res[cur] ? res[cur] ++ : res[cur] = 1 return res;}, {})console.log(rel); // {f: 3, g: 3, h: 1, a: 2}
哈哈,利用reduce()
方法来处理的话,代码是不是简单了很多?
我们可以用reduce()
方法来对数组中的每个元素来做各种处理,将一种类型的数组转换成另一种类型的数组。
var arr = [1, 2].reduce(function(res, cur) { res.push(cur + ''); return res; }, []);console.log(arr); // ["1", "2"]
到此,相信大家对"JavaScript数组reduce()方法怎么用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
方法
数组
类型
商品
代码
处理
价格
例子
元素
内容
购物车
学习
购物
复杂
实用
强大
更深
不用
业务
优惠券
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海个人软件开发管理办法
苏州电脑软件开发哪里好
java获取数据库结构信息
合作小程序软件开发公司
网络安全工程师考试前一天怎么
海口智游网络技术有限公司
网络安全背景黑板报
文件服务器备份工具
做到高级软件开发后能做什么
软件开发汇报
打印机联机显示重启打印服务器
棋牌软件开发找哪家好
企业物理网络安全方案
虎丘区软件开发公司电话
民政局网络安全责任制
gp数据库下载
指峰网络技术
cache数据库服务器端口
哪有mysql数据库运维
uc网络安全检查在哪里关
校园网络安全的预防
java一般都用什么数据库
网络安全 举报人
网络安全工程师考试前一天怎么
平原互联网科技
杭州苹果软件开发公司如何选择
财务网络安全征文
广州七翼互联网科技有限公司
表格怎么查找缺少数据库
计算机网络技术的女生多吗