语法:

array.reduce(function(prev, currentValue, currentIndex, arr), initialValue)

prev: 初始值,或者是计算结束后的返回值
currentValue: 当前元素
currentIndex: 当前元素的索引
arr: 当前元素所属的数组对象
initialValue: 初始值

什么时候用它?

当多个数据最终变成一个数据的时候

有道面试题,给定一个数组,让我求它的平均数,我先用for循环利用每项累加,除以数组长度来计算的

面试官让我用其他方法解决,这时候就可以用reduce来解决

原数组 var arr = [1, 2, 3, 6, 8]

// 数组求和
var sum = arr.reduce((prev, currentVal) => {
return prev+ currentVal;
}, 0)
// 平均数
var average = arr.reduce((prev, currentVal) => {
return (prev + currentVal) / arr.length;
}, 0)
// 数组去重
var newArr = arr.reduce((prev, cur) => {
prev.indexOf(cur) === -1 && prev.push(cur);
return prev;
},[]);
// 对象数组求和
var result = [
{ name: 'lily', age: 18 },
{ name: 'lucy', age: 20 },
{ name: 'lulu', age: 35 }
];
var sumAge = result.reduce((accumulator, cur) => {
return accumulator + cur.age;
}, 0);
// 求数组最大值
var maxVal = arr.reduce((prev, cur) => {
return prev > cur ? prev : cur;
}, 0);

大概这些,后期再加~~

reduce对数组及数组对象的常见操作的更多相关文章

  1. reduce方法简单实现数组中对象去重

    js数组的reduce方法,接收一个函数(必须)和指定的初始值(非必须)作为参数,函数有三个参数,分别为初始值,当前项,当前数组,进行累加或者累积操作,初始值为每次累加或者累计后的结果 注意:在ie9 ...

  2. JavaScript数组常见操作

    JavaScript数组常见操作 Tip: 右键在新标签中打开查看清晰大图 下面介绍JavaScript中的数组对象遍历.读写.排序等操作以及与数组相关的字符串处理操作 创建数组 一般使用数组字面量[ ...

  3. JS 数组常见操作汇总,数组去重、降维、排序、多数组合并实现思路整理

    壹 ❀ 引 JavaScript开发中数组加工极为常见,其次在面试中被问及的概率也特别高,一直想整理一篇关于数组常见操作的文章,本文也算了却心愿了. 说在前面,文中的实现并非最佳,实现虽然有很多种,但 ...

  4. JS数组去重的几种常见方法

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

  5. java数组复制的几种常见用法

    1.1数组复制的几种常见用法 1.1.1System.arraycopy的用法 int[] src = {1,3,5,7,9,11,13,15,17}; int[] dest = {2,4,6,8,1 ...

  6. reduce多种方法计算数组中某个值的出现次数

    先来了解下reduce用法 arr.reduce(callback[, initialValue]) callback执行数组中每个值的函数,包含四个参数: accumulator 累计器累计回调的返 ...

  7. 学习javaScript必知必会(3)~数组(数组创建,for...in遍历,辅助函数,高级函数filter、map、reduce)

    一.数组: 1.js是弱语言,js中的数组定义时:不用指定数据类型.不用功指定数组长度:数组可以存储任何数据类型的数据 2.数组定义的[ ] 的实质: [] = new Array(); {} = n ...

  8. VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法

    1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ...

  9. javascript里面的数组,json对象,动态添加,修改,删除示例

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. 用vector容器代替数组 ——使用数组初始化vector对象

    在C++中,我们不能用数组直接初始化另一数组,而只能创建新的数组,然后显式的把原数组的元素逐个复制给新的数组. 按照C语言中的做法: const size_t arry_size=6; int int ...

随机推荐

  1. 为什么sleeping的会话会造成阻塞

    背景 客户反映HIS数据库每天22点后都会发生阻塞,阻塞的源头是一个sleeping的会话,越阻塞越多,只能通过手动KILL掉才能解决,十分不解为什么状态为sleeping的会话会造成阻塞. 现象 在 ...

  2. 无法将“obj\Debug\net5.0\xxx.dll”复制到“bin\Debug\net5.0\xxx.dll”。超出了重试计数 10。失败。

    解决办法 VS选中项目,右键清理解决方案,再次右键重新生成方案即可. 以上就是无法将"obj\Debug\net5.0\xxx.dll"复制到"bin\Debug\net ...

  3. 视觉十四讲:第九讲_BA优化_g2o

    1.投影模型和BA代价函数 这个流程就是观测方程 之前抽象的记为: \(z = h(x, y)\) 现在给出具体的参数话过程,x指此时相机的位姿R,t,它对应的李代数为\(\xi\).路标y即为这里的 ...

  4. 【Oculus Interaction SDK】(十)在 VR 中使用手势识别

    前言 前段时间 Oculus 的 SDK 频繁更新,很多已有的教程都不再适用于现在的版本了.本系列文章的主要目的是记录现版本常见功能的实现方法,便于自己后续开发.当然,不排除我文章刚写完 SDK 又变 ...

  5. js中的Object.keys、array.map、groupBy、call、apply总结分享

    分享几个js中的函数 Object.keys() 首先这个函数是用来干嘛的呢?是用来把一个json字符串里的key全都取出来重新整成一个数组的方法,那么这个函数怎么用呢,接下来贴出我最近碰见的用法: ...

  6. 用ChatGPT,快速设计一个真实的账号系统

    hi,我是熵减,见字如面. 用ChatGPT,可以尝试做很多的事情. 今天我们就来让ChatGPT做为架构师,来帮我们设计一个账号系统吧. 我的实验过程记录如下,与你分享. 用户故事 首先,我们从用户 ...

  7. .bash_profile等配置文件

    brew环境 mysql:数据库,装数据用. redis:缓存用. unrar:解压用. docker:虚拟环境用. node:某些项目依赖这个. python环境 command line tool ...

  8. PostgreSQL中的row_number() 与distinct用法说明

    一.示例 这两个SQL执行所得到的数据是一样的! select count(s.*) from (  select *, row_number() over (partition by fee_dat ...

  9. Postgresql架构体系解析

    一.PostgreSQL物理架构 postgresql的物理架构非常简单,它由共享内存.一系列后台进程和数据文件组成. 二.Shared Memory 共享内存是服务器服务器为数据库缓存和事务日志缓存 ...

  10. loj3076

    参照 E_Space 的候选队论文,我们建出广义串并联图进行「删一度点」「缩二度点」「叠合重边」操作合并信息的表达式树. 我们把其描述成一颗 Leafy Tree. 我们不妨在每个叶节点处存一个点或者 ...