JavaScript数组reduce()方法怎么用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"JavaScript数组reduce()方法怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JavaScript数组reduce()
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
上海挚品互联网科技有限公司
互联网科技巨头监管
科技服务与互联网
有木互联网科技
上海万想互联网科技
互联网科技博客
济南华为互联网科技产业总部基地
汽车互联网创新科技园
科技与互联网哪个更好
互联网科技创新服务
未来五年的互联网科技
哈尔滨屹滨互联网科技有限公司
健康食品互联网创新科技园项目
华夏恒生互联网科技013171
科技大学互联网
南博望互联网科技有限公司
城市宝互联网科技有限公司
互联网科技博主张洲
互联网对科技影响
重庆科技产业互联网有哪些
广州大一互联网络科技有限公司
北京路客互联网科技有限公司
致聘互联网科技
上海致骋互联网科技
小米互联网科技园设置
中国航天科技大学国际工业互联网
小米互联网科技园入驻
神州科技互联网有限公司
张家口科技产业互联网平台
玉溪新华互联网科技怎么选