reduce方法

news/2025/2/23 2:30:41/
console.log(movements);

在这里插入图片描述

● 例如上述这个列表存储了一个用户每次取钱和存钱的一个过程,我们要将这个数组中所有的数组加起来,来了解他的余额到底有多少钱,这就需要用到reduce方法

const balance = movements.reduce(function (acc, cur, i, arr) {return acc + cur;
}, 0);console.log(balance);

在这里插入图片描述

注:
1. reduce的回调函数中可以接受四个参数,它们分别是:
● 累加器(accumulator):累加器是reduce函数的第一个参数,它是上一次回调函数的返回值,或者是初始值(如果没有提供初始值的话)。
● 当前元素(current element):当前正在处理的数组元素。
● 当前索引(current index):当前正在处理的数组元素的索引。
● 原数组(array):调用reduce方法的数组本身。
2. reduce参数中最后会给一个初始值,为0

● 我们可以打印除每一步的累加情况

const balance = movements.reduce(function (acc, cur, i, arr) {console.log(`Iteration ${i}: ${acc}`);return acc + cur;
}, 0);console.log(balance);

在这里插入图片描述

● 当然我们也可以使用for…of来实现同样的效果

let balance2 = 0;
for (const mov of movements) balance2 += mov;
console.log(balance2);

在这里插入图片描述

● 上面的reduce方法我们也可以使用箭头函数的方式来简化代码

const balance = movements.reduce((acc, cur) => acc + cur, 0);
console.log(balance);

在这里插入图片描述

● 现在我们就可以通过这个方法来计算这个页面的用户余额了

const calcDisplayBalance = function (movements) {const balance = movements.reduce((acc, mov) => acc + mov, 0);labelBalance.textContent = `${balance} EUR`;
};
calcDisplayBalance(account1.movements);

在这里插入图片描述

● 这个目前需要手动去执行账户中的key,后面会慢慢的去优化

● 但是请记住,reduce不仅仅是计算数组中的和,它的作用是可以将数组变为一个单一的值,比如也可以计算数组的最大值

const maxNum = movements.reduce((acc, cur) => {if (acc > cur) {return acc;} else {return cur;}
}, movements[0]);
console.log(maxNum);

在这里插入图片描述


http://www.ppmy.cn/news/1418679.html

相关文章

10.哀家要长脑子了!

1. 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 哎哟 我去 我还以为你都搞懂了 呵呵 当时问题出现在右边界初始化 左闭右开 右边界是取不到的 int left 0, right nums.size() ; while(left < right) { int mid left (right - left) / 2; if( target > …

Open CASCADE学习|BRepOffsetAPI_DraftAngle

BRepOffsetAPI_DraftAngle 是 Open CASCADE Technology (OCCT) 中用于创建带有草图斜面的几何体的类。草图斜面是一种在零件设计中常见的特征&#xff0c;它可以在零件的表面上创建一个倾斜的面&#xff0c;通常用于便于零件的脱模或是增加零件的强度。 本例演示了如何创建一个…

二极管分类及用途

二极管分类及用途 通用开关二极管 特点&#xff1a;电流小&#xff0c;工作频率高 选型依据&#xff1a;正向电流、正向压降、功耗&#xff0c;反向最大电压&#xff0c;反向恢复时间&#xff0c;封装等 类型&#xff1a;BAS316 ; IN4148WS 应用电路: 说明&#xff1a;应用…

SpringCloudAlibaba系列整合

springcloud Alibaba系列整合 1、SpringCloudAlibaba-概述&#xff08;一&#xff09; 2、SpringCloudAlibaba-整合nacos&#xff08;二&#xff09; 3、SpringCloudAlibaba-整合openfeign和loadbalence&#xff08;三&#xff09; 4、SpringCloudAlibaba-整合sentinel&am…

5.9 mybatis之callSettersOnNulls作用

文章目录 1. 当callSettersOnNullstrue时2. 当callSettersOnNullsfalse时 在mybatis的settings配置参数中有个callSettersOnNulls参数&#xff0c;官方解释为&#xff1a;指定当结果集中值为 null 的时候是否调用映射对象的 setter&#xff08;map 对象时为 put&#xff09;方法…

Nginx 基础应用实战 04 在公网配置配置HTTPS

Nginx 基础应用实战 04 在公网配置配置HTTPS Nginx配置 server {listen 443 ssl;server_name aa.abc.com;ssl_certificate /data/cert/server.crt;ssl_certificate_key /data/cert/server.key;}免费签名 https://freessl.cn 阿里云 腾讯云 Nginx配置 serve…

ubuntu spdlog 封装成c++类使用

安装及编译方法&#xff1a;ubuntu spdlog 日志安装及使用_spdlog_logger_info-CSDN博客 h文件&#xff1a; #ifndef LOGGING_H #define LOGGING_H#include <iostream> #include <cstring> #include <sstream> #include <string> #include <memor…

08 Php学习:if语句、Switch语句

PHP 条件语句 当您编写代码时&#xff0c;您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。 在 PHP 中&#xff0c;提供了下列条件语句&#xff1a; if 语句 - 在条件成立时执行代码 if…else 语句 - 在条件成立时执行一块代码&#xff0c;…