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 相关文章推荐
dojo 之基础篇(三)之向服务器发送数据
Mar 24 Javascript
jQuery新闻滚动插件 jquery.roller.js
Jun 27 Javascript
jQuery Ajax请求状态管理器打包
May 03 Javascript
微信小程序 框架详解及实例应用
Sep 26 Javascript
vue.js学习之UI组件开发教程
Jul 03 Javascript
bootstrap精简教程_动力节点Java学院整理
Jul 14 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
Dec 19 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
Dec 25 Javascript
基于Webpack4和React hooks搭建项目的方法
Feb 05 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
如何让微信小程序页面之间的通信不再变困难
Jun 03 Javascript
用js编写留言板
Mar 17 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
共享自己写一个框架DreamScript
2007/01/20 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
js 内存释放问题
2010/04/25 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
python编写的最短路径算法
2015/03/25 Python
python创建和删除目录的方法
2015/04/29 Python
python中enumerate函数遍历元素用法分析
2016/03/11 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
python实现大文本文件分割
2019/07/22 Python
Python ATM功能实现代码实例
2020/03/19 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
爱游人:Travelliker
2017/09/05 全球购物
工程测量与监理专业应届生求职信
2013/11/27 职场文书
yy结婚证婚词
2014/01/10 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
父亲去世追悼词
2015/06/23 职场文书
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android
Python开发五子棋小游戏
2022/05/02 Python