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 相关文章推荐
JS弹出层单纯的绝对定位居中示例代码
Feb 18 Javascript
使用jQueryMobile实现滑动翻页效果的方法
Feb 04 Javascript
jQuery菜单插件superfish使用指南
Apr 21 Javascript
jQuery往textarea中光标所在位置插入文本的方法
Jun 26 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
May 21 Javascript
AngularJS基础 ng-class-odd 指令示例
Aug 01 Javascript
基于原生JS实现图片裁剪
Aug 01 Javascript
详解JS异步加载的三种方式
Mar 07 Javascript
Vue2路由动画效果的实现代码
Jul 10 Javascript
详解Axios统一错误处理与后置
Sep 26 Javascript
JS实现打字游戏
Dec 17 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
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
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
Python中的rfind()方法使用详解
2015/05/19 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python实现登陆文件验证方法
2018/10/06 Python
浅谈Python 递归算法指归
2019/08/22 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
家居设计专业个人自荐信范文
2013/11/26 职场文书
董事长秘书岗位职责
2013/11/29 职场文书
初中生个人学习的自我评价
2013/12/04 职场文书
运动会开幕式解说词
2014/02/05 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
社区宣传标语口号
2015/12/26 职场文书
安全教育培训心得体会
2016/01/15 职场文书
python实现简单区块链结构
2021/04/25 Python
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL