JS数组求和的常用方法总结【5种方法】


Posted in Javascript onJanuary 14, 2019

本文实例总结了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("+"));
};
//测试输出运行结果:
console.log(sum([ 1, 2, 3, 4 ]))

使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可得如下运行结果:

JS数组求和的常用方法总结【5种方法】

感兴趣的朋友可以动手测试一下上述代码。

更多关于JavaScript相关内容还可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript排序算法总结》、《JavaScript查找算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
表单填写时用回车代替TAB的实现方法
Oct 09 Javascript
Javascript判断对象是否相等实现代码
Mar 18 Javascript
jQuery渐变发光导航菜单的实例代码
Mar 27 Javascript
基于jQuery中对数组进行操作的方法
Apr 16 Javascript
JavaScript中的fontsize()方法使用详解
Jun 08 Javascript
Web打印解决方案之普通报表打印功能
Aug 29 Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
深入理解Vuex 模块化(module)
Sep 26 Javascript
手动用webpack搭建第一个ReactApp的示例
Apr 11 Javascript
vue-cli的工程模板与构建工具详解
Sep 27 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
Jul 25 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
May 20 Javascript
JS实现根据数组对象的某一属性排序操作示例
Jan 14 #Javascript
vue项目中使用vue-i18n报错的解决方法
Jan 13 #Javascript
vscode下vue项目中eslint的使用方法
Jan 13 #Javascript
jQuery实现的中英文切换功能示例
Jan 11 #jQuery
JavaScript寄生组合式继承原理与用法分析
Jan 11 #Javascript
JavaScript常见继承模式实例小结
Jan 11 #Javascript
JavaScript惰性求值的一种实现方法示例
Jan 11 #Javascript
You might like
深入了解php4(2)--重访过去
2006/10/09 PHP
PHP安装攻略:常见问题解答(三)
2006/10/09 PHP
MySql中正则表达式的使用方法描述
2008/07/30 PHP
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
PHP与Perl之间知识点区别整理
2019/03/19 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
js打印纸函数代码(递归)
2010/06/18 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
JavaScript 绘制饼图的示例
2021/02/19 Javascript
用python实现百度翻译的示例代码
2018/03/09 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
英雄儿女观后感
2015/06/09 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python