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 相关文章推荐
jquery加载页面的方法(页面加载完成就执行)
Jun 21 Javascript
这些年、我收集的JQuery代码小结
Aug 01 Javascript
jQuery对象的length属性用法实例
Dec 27 Javascript
js简单工厂模式用法实例
Jun 30 Javascript
jquery实现无刷新验证码的简单实例
May 19 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
Jun 21 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
jquery uploadify如何取消已上传成功文件
Feb 08 Javascript
帝国cms首页列表页实现点赞功能
Oct 30 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
Jun 23 Javascript
微信小程序实现星级评价效果
Dec 28 Javascript
通过实例解析jQ Ajax操作相关原理
Sep 23 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
分享PHP header函数使用教程
2013/09/05 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
总结js函数相关知识点
2018/02/27 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
微信小程序实现跑马灯效果
2020/10/21 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
python运行其他程序的实现方法
2017/07/14 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
python对execl 处理操作代码
2020/06/22 Python
python实现粒子群算法
2020/10/15 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
COSETTE官网:奢华,每天
2020/03/22 全球购物
《画杨桃》教学反思
2014/04/13 职场文书
住宅质量保证书
2014/04/29 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
品质保证书格式
2015/02/28 职场文书
紫日观后感
2015/06/05 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
Python字典和列表性能之间的比较
2021/06/07 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
Vue如何清空对象
2022/03/03 Vue.js