通过reduce函数实现数组求和_js数组求和的方法

通过reduce函数实现数组求和_js数组求和的方法对于实现数组求和,我们常用的思路是通过for、while,对数组进行迭代,依次将他们的值加起来,下面列举常用的两种方法第一种:vararr=[1,2,3,4,5,6];Array.prototype.sum=function(){varsumResult=0;for(vari=0;i<this.lengt…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

对于实现数组求和,我们常用的思路是通过for、while,对数组进行迭代,依次将他们的值加起来,下面列举常用的两种方法

第一种:

var arr = [1,2,3,4,5,6]; 
Array.prototype.sum = function (){ 
    var sumResult = 0; 
    for (var i = 0; i < this.length; i++) { 
      sumResult += parseInt(this[i]); 
    } 
    return sumResult; 
} 
arr.sum(); 

第二种:

var arr = [1,2,3,4,5,6]; 
Array.prototype.sum = function () { 
    var sumResult = 0; 
    var i = this.length; 
    while (i--) { 
        sumResult += parseInt(this[i]); 
    } 
    return sumResult; 
} 
arr.sum();

经时间对比验证,此两种方法耗时较多。

安利一种新方法,reduce方法。

对数组中的所有元素调用指定的回调函数。该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。

语法: array1.reduce(callbackfn[, initialValue])

reduce()方法接收callbackfn函数,而这个函数包含四个参数:

  function callbackfn(preValue,curValue,index,array){}

  • preValue: 上一次调用回调返回的值,或者是提供的初始值(initialValue)
  • curValue: 数组中当前被处理的数组项
  • index: 当前数组项在数组中的索引值
  • array: 调用 reduce()方法的数组

回调函数第一次执行时,preValue 和 curValue 可以是一个值,如果 initialValue 在调用 reduce() 时被提供,那么第一个 preValue 等于 initialValue ,并且curValue 等于数组中的第一个值;如果initialValue 未被提供,那么preValue 等于数组中的第一个值,`curValue等于数组中的第二个值。eg:

var arr = [0,1,2,3,4]; 
arr.reduce(function (preValue,curValue,index,array) { 
    return preValue + curValue; 
}); 

上个例子中的回调函数会被执行4次,

通过reduce函数实现数组求和_js数组求和的方法下面就用reduce实现我们的数组求和: 

var arr = [1,2,3,4,5,6]; 
Array.prototype.sum = function (){ 
    var sumResult = 0; 
    return this.reduce(function (preValue, curValue) {
     return sumResult = preValue + curValue; 
    });
    return sumResult;
} 
console.log(arr.sum());

 结论:三种方法,经对比,reduce用时最短,性能最佳。

参考文章:http://www.w3cplus.com/javascript/array-part-8.html

转载于:https://www.cnblogs.com/xiaoli52qd/p/7392700.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186914.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring中bean的作用域与生命周期

    Spring中bean的作用域与生命周期在Spring中,那些组成应用程序的主体及由SpringIoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。而bean的定义以及bean相互间的依赖关系将通过配置元数据来描述。  Spring中的bean默认都是单例的,这些单例Bean在多线程程序下如何保证线程安全呢?例如对于Web应用来

    2022年4月30日
    56
  • HTTP代理_gap加盟需要投资多少

    HTTP代理_gap加盟需要投资多少2019独角兽企业重金招聘Python工程师标准>>>…

    2025年7月1日
    0
  • laravel-事件监听-核心解读「建议收藏」

    laravel-事件监听-核心解读「建议收藏」laravel-事件监听-核心解读

    2022年4月24日
    42
  • python生成矩阵 元素随机_用python生成随机矩阵「建议收藏」

    python生成矩阵 元素随机_用python生成随机矩阵「建议收藏」在下面的代码中,我对一般的平方线性系统Ax=b实现了带有部分旋转的高斯消去。我测试了我的代码,它产生了正确的输出。不过,现在我正在尝试做以下事情,但我不太确定如何编码它,寻找一些帮助与此!我想通过求解Ax=b来测试我的实现,其中A是随机的100×100矩阵,b是随机的100×10向量。在我的代码中,我把矩阵A=np.array([[3.,2.,-4.],[2.,3.,3.],[5.,-3.,1…

    2025年7月12日
    0
  • cs与bs模式的优缺点_什么是cs什么是bs

    cs与bs模式的优缺点_什么是cs什么是bscs与bs模式关于CS(Client-Server)模式和BS(Browser-Server)模式的水很深,盆地自己也认为对此了解不够透彻,但作为手机客户端设计,如果不对CS、BS做一定程度的了解,是很容易出现一些方向性的错误、走一些弯路抑或在实现性价比上付出过多代价。本文偏向于基础知识,产品人员很多情况下不仅仅要了解表现、交互,还需要一定程度上了解可实现性、实现代价、实现形式、实现限制等…

    2022年9月9日
    0
  • jdbc是数据库连接池么_零之轨迹超详细攻略

    jdbc是数据库连接池么_零之轨迹超详细攻略JDBC数据库连接池一、JDBC数据库连接池的必要性二、数据库连接池技术三、多种开源的数据库连接池3.1C3P0数据库连接池3.2DBCP数据库连接池3.3Druid(德鲁伊)数据库连接池一、JDBC数据库连接池的必要性1、在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:(1)在主程序(如servlet、beans)中建立数据库连接(2)进行sql操作(3)断开数据库连接2、这种模式开发,存在的问题:(1)普通的JDBC数据库连接使用DriverManager来

    2022年9月17日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号