对象里的属性求和var result = [{subject: 'math', score: 10 }, { subject: 'chinese', score: 20 }, { subject: 'english', score: 30 } ]; var sum = result.reduce(function(prev, cur) { return cur.score + prev; }, 0); console.log(sum) //60

将二维数组转化为一维
// let arr1 = arr.reduce((prev,cur)=>prev.concat(cur),[])//二维数组转换成一维数组
// console.log(arr1)

将多维数组转化为一维

let arr2 = [[1,2],[6,23],[2,[7,34,25]]]
let format = function(arr){
return arr.reduce((prev,cur)=>prev.concat(Array.isArray(cur)?format(cur):cur),[])
}
console.log(format(arr2))
数组降维还可以用flat()
[1, 2, [3,[4,6]]].flat(Infinity)

数组去重 

let arr = [1,2,3,4,4,1] let newArr = arr.reduce((pre,cur)=>{ if(!pre.includes(cur)){ return pre.concat(cur) }else{ return pre } },[]) console.log(newArr);// [1, 2, 3, 4]

计算数组中每个元素出现的次数

let names = ['lili', 'B', 'T', 'Br', 'lili']; let nameNum = names.reduce((pre,cur)=>{ if(cur in pre){ pre[cur]++ }else{ pre[cur] = 1 } return pre },{}) console.log(nameNum); //{lili: 2, B: 1, T: 1, Br: 1}
arr.reduce(callback,[initialValue])
callback (执行数组中每个值的函数,包含四个参数)1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))2、currentValue (数组中当前被处理的元素)3、index (当前元素在数组中的索引) 4、array (调用 reduce 的数组) initialValue (作为第一次调用 callback 的第一个参数。)
var arr = [1, 2, 3, 4]; var sum = arr.reduce(function(prev, cur, index, arr) { console.log(prev, cur, index); return prev + cur; }) console.log(arr, sum);
打印结果:1 2 13 3 26 4 3[1, 2, 3, 4] 10

转载于:https://www.cnblogs.com/MDGE/p/11303064.html

reduce详细用法相关推荐

  1. Android命令行工具logcat详细用法!

    logcat是Android中一个命令行工具,可以用于得到程序的log信息. 见板凳详细说明!      本贴内容来自网络,引用网址为:http://hi.baidu.com/%C9%C1%D2%AB ...

  2. __declspec关键字详细用法

    __declspec关键字详细用法 2009-01-21 16:23 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与ext ...

  3. mysql left/right join算法效率分析_mysql left join,right join,inner join超详细用法分析

    MySQL left join,right join,inner join超详细用法分析 下面是例子分析 表A记录如下: aID        aNum 1           a20050111 2 ...

  4. python sort怎么用,Linux Sort命令详细用法(有实例)

    Linux Sort命令详细用法(有实例) sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! Linux sort命令进阶: 1 sort的工作原理 so ...

  5. vue性能优化-------vendor优化详细用法(瘦身),减小体积,引入cdn

    vue性能优化-------vendor优化详细用法(瘦身),减小体积,引入cdn 原创ChrisWang_ 最后发布于2019-05-24 10:25:58 阅读数 1332  收藏 展开 vue性 ...

  6. oracle rtrim(),Oracle ltrim() rtrim() 函数详细用法

    嘿嘿,今天在论坛里看了一篇帖子,讨论ltrim() 函数的详细用法,下面我借几个高手的回答总结一下: 先看几个实例: SQL> select ltrim('109224323','109') f ...

  7. pythonrange函数用法_python range()函数详细用法

    python range()函数详细用法 函数原型:range(start, end, scan): 参数含义:start:计数从start开始.默认是从0开始.例如range(5)等价于range( ...

  8. python中3 and not 5_python中not、and和or的优先级与详细用法介绍

    前言 (小白专用)本次所分享的是Python中的not.and.or的执行时的优先级,以及他们的具体用法.本文比较详细,不喜勿喷. 一.not.and.or的含义以及优先级 对象 返回结果 优先顺序 ...

  9. Word查找替换详细用法及通配符一览表

    转载自:https://www.cnblogs.com/whchensir/p/5768030.html Word查找替换详细用法及通配符一览表 使用通配符 要查找"?"或者&qu ...

最新文章

  1. 工业4.0:数字化供应链的三个方向
  2. javaScript 之 蚁人微任务
  3. hdu1010 dfs+路径剪枝
  4. tomcat点击startup.bat闪退解决办法
  5. 文件名不能为null_色即是空,空即是色---java有关null的几件小事
  6. java用do while语句逆序输出_跟我学java编程—深入理解do-while循环语句的用法
  7. python cookbook 小结
  8. Java String转int、float、double
  9. python文本文档_Python3 File
  10. python应聘要求_python爬取招聘要求等信息实例
  11. jquery html 动态添加元素绑定事件
  12. 阿里云磐久服务器M系列研发之路
  13. 数据库系统概论总结(第五版)
  14. android 连续播放动画,Android ObjectAnimator 无限循环播放,实现上下左右浮动效果...
  15. 领域驱动设计系列关键概念
  16. Android 杂记 - 存货盘点用的客户端
  17. 设计32信道的多相滤波结构数字接收机
  18. 【软件定义汽车】-【架构篇】-迈向SOA软件架构,软件定义汽车成为现实
  19. 华农c语言程序设计教程陈湘骥,华农数信学子在第44届国际大学生程序设计竞赛勇夺金牌...
  20. Ubuntu16.04在4K显示器中,字体太小,进行调整

热门文章

  1. 接口,实现类,对象方法的调用关系.(查看程序输出)
  2. Numpy 基本除法运算和模运算
  3. redis,memcache,mongodb对比
  4. LXReorderableCollectionViewFlowLayout
  5. 黄聪:VS2008的动、静态编译[转]
  6. 使用 MIDP 底层用户接口 API
  7. 标准RTSP消息的错误代码–转
  8. 蓝桥杯 ADV-100 算法提高 第二大整数
  9. 蓝桥杯 ALGO-63 算法训练 乘法表
  10. 蓝桥杯 ALGO-42 算法训练 送分啦