当业务需要从一个数组里求出某项的和的时候.

1.for遍历

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

var resulte = 0;

for (let index = 0; index < a.length; index++) {
resulte += a[index];
} console.log(resulte); //55

又或者会去这样实现

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

var resulte = 0;

a.forEach(i => resulte += i)

console.log(resulte); //55

其实js的数组内置函数早已经帮我们实现好了

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

const INITVAL = 0;//默认从0开始累加,可要可不要

var resulte = a.reduce((prev, item) => prev + item, INITVAL)

console.log(resulte); //55

reduce使用教程

如何实现一个简单的reduce

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

const INITVAL = 0;//默认从0开始累加,可要可不要

var resulte = a.reduce((prev, item) => prev + item, INITVAL)

console.log(resulte); //55
``` [reduce使用教程](https://www.runoob.com/jsref/jsref-reduce.html) ### 如何实现一个简单的reduce ```
Array.prototype.myReduce = function (cb, initVal) {
var resulte = initVal;
var len = this.length;
var i = 0;
//空数组不执行
if (len === 0) {
return console.log('数组不能为空')
}
//initVal如果不为空,索引+1
if (initVal === undefined) {
resulte = this[i]
i = 1
}
for (i; i < len; i++) {
var item = this[i];
resulte = cb(resulte, item, i);
}
return resulte
} var b = [1, 3, 4, 5, 6]
var persons = [
{
name: "张三",
age: 18
}, {
name: "李四",
age: 36
}
] var agesum= persons.myReduce((a,c)=> a+c.age,0)
var r = b.myReduce(function (pre, item, index) {
console.log(pre, item, index); //上一个值, 遍历的当前项 , 索引
return pre + item
}, 7)
console.log(r);
console.log(agesum);

  

什么情况下会使用array.reduce函数的更多相关文章

  1. 如何在命令长度受限的情况下成功get到webshell(函数参数受限突破、mysql的骚操作)

    0x01 问题提出 还记得上篇文章记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门),我们讲到了一些PHP的一些如何巧妙地绕过数字和字母受限的技巧,今天我要给大家分享的是如 ...

  2. SQL&EF优化第一篇 各种情况下的性能测试之count函数篇

    测试环境  mssql 08  +win7    数据 30W条 二〇一六年十月二十九日 09:04:43 结论:1>主键> *>可空列    推测未论证: 根据情况优先选择 顺便提 ...

  3. 用es6的Array.reduce()方法计算一个字符串中每个字符出现的次数

    有一道经典的字符串处理的问题,统计一个字符串中每个字符出现的次数. 用es6的Array.reduce()函数配合“...”扩展符号可以更方便的处理该问题. s='abananbaacnncn' [. ...

  4. 如何在不使用系统函数的情况下实现PHP中数组系统函数的功能

    PHP中为我们提供了各种各样的系统函数来实现我们需要的各种功能,那么,在不使用系统函数的情况下我们要怎样来实现这些功能呢?以下就是几种系统函数的实现方式. 首先,我们来定义一个数组: $arr= ar ...

  5. JavaScript进阶系列04,函数参数个数不确定情况下的解决方案

    本篇主要体验函数参数个数不确定情况下的一个解决方案.先来看一段使用函数作为参数进行计算的实例. var calculate = function(x, y, fn) { return fn(x, y) ...

  6. C++:一般情况下,设计函数的形参只需要两种形式

    C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const ...

  7. 保留键的情况下取字典中最大的值(max\zip函数的联合使用)

    在我们平常想要获取字典中value最大或者最小的值的时候,常常使用如下函数: testDict = {"age1":18,"age2":20,"age ...

  8. linux i2c 的通信函数i2c_transfer在什么情况下出现错误

    问题: linux i2c 的通信函数i2c_transfer在什么情况下出现错误描述: linux i2c设备驱动 本人在写i2c设备驱动的时候使用i2c transfer函数进行通信的时候无法进行 ...

  9. C++11 std::call_once:保证函数在任何情况下只调用一次

    std::call_once的作用是很简单的, 就是保证函数或者一些代码段在并发或者多线程的情况下,始终只会被执行一次.比如一些init函数,多次调用可能导致各种奇怪问题. 给个例子: #includ ...

  10. teradata 字符串数据合并 在concat()函数无法使用的情况下

    在teradata sql中不存在concat()函数或者stuff()函数,在此情况下,如何实现多条字符串数据合并成一行? 在查找不同方法过程中,在stackflow中找到最简便的方法,使用xml_ ...

随机推荐

  1. 在 Chromebook 上使用 Word 的最佳方法

    Splashtop 允许您从 Chromebook 远程控制 Windows 和 Mac 计算机,从而可以访问 Word 的桌面版本和所有文件. 对于远程工作者和学生,Chromebook 可以是一种 ...

  2. VRRP 虚拟路由器冗余协议

    目录 文章目录 目录 为什么要使用 VRRP 技术? VRRP VRRP 的概念 VRRP 的工作原理 VRRP 的状态机 VRRP 的工作过程 VRRP 的选举机制 VRRP 的报文格式 VRRP ...

  3. C 编程异常 — /usr/bin/ld: 找不到 -lm

    问题:在编程程序的时候报错. /usr/bin/ld: 找不到 -lm /usr/bin/ld: 找不到 -lc 原因:缺少库文件. 解决: yum install -y libstdc++-stat ...

  4. 图片GPS度分秒转换经纬度

    图片位置信息转化经纬度 1 public static String strToLatOrLng(String str) { 2 int i = str.lastIndexOf("°&quo ...

  5. linux 为普通用户配置sudo权限

    目录 一.关于sudo 二.sudo的工作过程 三.为普通用户配置sudo权限 3.1 方法一:把普通用户的附属组更改为wheel,使其具有sudo权限(推荐) 3.2 方法二:修改/etc/sudo ...

  6. Python提取文本文件(.txt)数据的方法

      本文介绍基于Python语言,遍历文件夹并从中找到文件名称符合我们需求的多个.txt格式文本文件,并从上述每一个文本文件中,找到我们需要的指定数据,最后得到所有文本文件中我们需要的数据的合集的方法 ...

  7. c++ RTTI Runtime Type Identification 运行阶段类型识别

    NoVirtualBase* NvirBase = new NovirtualDerivd(); NvirBase->print(); // auto nd1 = dynamic_cast< ...

  8. AIAGC导航(aiagc.com): 最全的AI工具导航网站

    AIAGC导航是一个专注于AI人工智能工具网站推荐的导航网站,可以帮助大家发现最新.最好用.最有趣的AI绘画.AI智能写作助手.AI聊天机器人.AI配音.AI音乐.AI换脸等各种AI工具应用软件,让A ...

  9. grid 布局兼容性问题

    低版本的安卓机上是不生效的 代码 .grid_4 { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: ...

  10. 使用python在k8s中创建一个pod

    要在Kubernetes (k8s) 中使用Python创建一个Pod,你可以使用Kubernetes Python客户端库(通常称为kubernetes或kubernetes-client).以下是 ...