本文实例总结了JS数组求和的常用方法。分享给大家供大家参考,具体如下:

题目描述

计算给定数组 arr 中所有元素的总和

输入描述:

数组中的元素均为 Number 类型

输入例子:

sum([ 1, 2, 3, 4 ])

输出例子:

10

方法1:不考虑算法复杂度,用递归写

function sum(arr) {var len = arr.length;if(len == 0){return 0;} else if (len == 1){return arr[0];} else {return arr[0] + sum(arr.slice(1));}
}

方法2:常规循环

function sum(arr) {var s = 0;for (var i=arr.length-1; i>=0; i--) {s += arr[i];}return s;
}

方法3:函数式编程 map-reduce

function sum(arr) {return arr.reduce(function(prev, curr, idx, arr){return prev + curr;});
}

方法4:forEach遍历

function sum(arr) {var s = 0;arr.forEach(function(val, idx, arr) {s += val;}, 0);return s;
};

方法5: eval

function sum(arr) {return eval(arr.join("+"));
};

JS中常用的函数求和方法总结【五种方法】相关推荐

  1. js中截取字符串前几位的两种方法slice()substring()

    在Javascript使用字符串中,我们不一定需要全部的字符串,这时就需要截取字符串.本文主要介绍js中截取字符串前几位的两种方法:1.使用slice() 方法:2.使用substring() 方法. ...

  2. linux服务器清除cdn,Linux服务器中查找并删除大文件的五种方法,Linux系统清除文件内容的命令分享...

    很多时候,在处理Linux终端中的文件时,您可能希望清除文件的内容,而无需使用任何Linux命令行编辑器打开它.怎么能实现这一目标?在本文中,我们将借助一些有用的命令,通过几种不同的方式清空文件内容. ...

  3. Java中判断字符串是否为数字的五种方法

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 推荐使用第二个方法,速度最快. 方法一:用JAVA自带的函数 Java代码   public sta ...

  4. 【js】js获取数组最后一位元素的五种方法

    一. 利用length let arr=[1,2,3]; arr[arr.length-1] //3 二. 数组pop方法 , 删除数组的最后一位 并返回 会修改原数组 let arr=[1,2,3] ...

  5. Windows:win10中查看自己的电脑版本号的五种方法

    原文:http://baijiahao.baidu.com/s?id=1599865729643161638&wfr=spider&for=pc 大家好!今天给大家分享下如何查看自己的 ...

  6. ftp上传当天文件的方法_五种方法将文件上传到FTP服务器

    您知道电脑硬盘是如何读取和存储数据的吗?恢复软件是如何找回数据的吗?通过这个视频教程,你将了解你丢失的数据是否还在,这些文件能否找回. 请点击 - >>>> 观看视频 如何安全 ...

  7. 漫谈分子动力学计算热导率的五种方法

    关注 Mr.material,\color{Violet} \rm Mr.material\ ,Mr.material , 更\color{red}{更}更多\color{blue}{多}多精\col ...

  8. 监测Squid日志的五种方法

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 原贴:h ...

  9. js中常用的数组和字符串方法

    一:js中常用的数组方法 <script>//函数声明式中的方法const arr=[1,3,6,9,15,19,16];//函数的所有方法 map(),reduce(),filter() ...

最新文章

  1. 设计模式学习笔记清单
  2. office在线编辑器
  3. sharepoint2010 创建自定义列表
  4. 最佳拟合直线_JAVA
  5. jquery表单数据反序列化为字典
  6. linux-basic(11)认识和学习bash
  7. p2psearcher2013其中
  8. 监督学习 | 集成学习 之Bagging、随机森林及Sklearn实现
  9. 计算机组成原理二进制地址码,计算机组成原理第四章第三讲.ppt
  10. python爬取网页版QQ空间,生成词云图、柱状图、折线图(附源码)
  11. php对键盘控制,键盘控制 - 陈映亮的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. 进击的AssetBundles和它的工具们
  13. 算法基础部分1-递归
  14. 替代CH7511B DP转LVDS屏换接设计|替代CH7511B EDP转LVDS转接板电路|CS5211电路原理图
  15. ai作文批改_网易有道词典再推AI作文批改新功能
  16. 360极速浏览器调用selenium
  17. 在2147483647的边缘疯狂试探
  18. C++字符串转为大写/小写
  19. 大数据学习之Flink环境搭建+提交任务方式
  20. python jupyter输出结果_Jupyter noteb中Python子进程的实时stdout输出

热门文章

  1. 当db_cache_advice初始化参数设为on, 大大降低了cpu的使用
  2. 持NPDP证书在深圳可享受子女入学、医疗保健、安居保障等福利
  3. AWS为什么能成功?
  4. 统计APP下载量--发现安卓下载大文件使用多线程下载方式
  5. 分析百度手机助手协议(实现app下载量上涨)
  6. 微信小程序(三)常见组件
  7. vue 安装(看图就够了,皮卡皮卡)
  8. USB fastboot
  9. iOS Xcode提交IPA时收到苹果邮件ITMS-90338: Non-public API usage
  10. 海尔简爱s11怎么进入bios_海尔简爱s11系统应用商店没有登录界面怎么办?