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

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. 支持4K60帧,高清高帧率远程控制软件

    设计师可以在家远程工作吗?动画制作人员可以远程在家工作吗?视频后期人员可以远程在家工作吗? 相比其他领域,设计.动画.影视视频后期等行业,往往需要高端机运行大型专业软件,一般人家里不具备这个办公条件. ...

  2. pageoffice6 在线编辑 word 文件时禁止拷贝到外部

    有些特殊情况下,希望用户可以在线编辑Word文档,也允许用户拷贝本地电脑或网络上的资料到Word文档中进行编辑,但是不希望用户把在线Word文档中的内容另存到本地或选择并拷贝出去,此时只是禁用另存.禁 ...

  3. rocketMQ 文章

    10 DefaultMQPushConsumer 使用示例与注意事项.md (lianglianglee.com) 手动回滚事务: (29条消息) spring 控制事务回滚重要知识点:Transac ...

  4. 基于深度学习的入侵检测系统综述文献概述——AI科研之路

    1.研究方向的背景是什么? (1)互联网发展迅速,网络安全态势严重 (2)现在的入侵检测准确率不够高,不能适应现在的需求 2.前人做了哪方面的工作获得了什么成果? 近代: 将网络作为入侵来源之后发展( ...

  5. Flyway简单迁移失败问题

    因为我是初学者,所以问题 只是一些细节性问题,现在看看V开头创建数据库迁移时的错误 问题一: flyway 命名规则问题这个绝对的细节中的细节问题 问题一解决方案: 命名规则:一定要遵循flyway的 ...

  6. TS码流解析(一)TS Header

    有一些音视频初学者想要了解TS码流结构,但网上资料不全或者讲得不够清楚,使得学习过程变得异常艰难.这一篇内容将对TS码流结构做详尽解析,争取做到通俗易懂,成为最好的TS码流解析文章. 本篇TS码流解析 ...

  7. iOS 如何保持线程一直在运转

    1.简单的可以想到,写一个while循环 while (TRUE) { } 但是这种方式存在缺陷,将导致CPU占用100%,两个核. p.p1 { margin: 0; font: 12px &quo ...

  8. git push遇到的问题“Please make sure you have the correct access rights and the repository exists.”

    问题:今天在用idea往github推送代码的时候,出现了下面的报错 原因:是ssh key有问题,连接不上服务器 解决: 1.得重新在git设置一下身份的名字和邮箱 git config --glo ...

  9. github无法提交代码问题

    问题描述 提交代码到个人仓库的时候发现报错,认证失败 Username for 'https://github.com': hywing Password for 'https://hywing@gi ...

  10. Visual Studio编程效率提升技巧集(提高.NET编程效率)

    前言 本文大姚将为你介绍一些Visual Studio的使用技巧和建议,旨在帮助.NET开发者更加高效地利用Visual Studio进行编程工作.无论你是.NET初学者还是经验丰富的.NET开发者, ...