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 相关文章推荐
javascript克隆对象深度介绍
Nov 20 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
JavaScript中的getTime()方法使用详解
Jun 10 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
Dec 03 Javascript
js+html5实现的自由落体运动效果代码
Jan 28 Javascript
javascript实现右侧弹出“分享到”窗口效果
Feb 01 Javascript
JavaScript html5利用FileReader实现上传功能
Mar 27 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
Nov 18 Javascript
基于vue.js无缝滚动效果
Jan 25 Javascript
redux处理异步action解决方案
Mar 22 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
Aug 21 Javascript
JavaScript实现筛选数组
Mar 02 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
PHP基础知识回顾
2012/08/16 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
PHP中危险的file_put_contents函数详解
2017/11/04 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
jQuery chili图片远处放大插件
2009/11/30 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
JS精确判断数据类型代码实例
2019/12/18 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
python制作最美应用的爬虫
2015/10/28 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
Python 使用多属性来进行排序
2019/09/01 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
会议接待欢迎词
2014/01/12 职场文书
幼儿园新年寄语
2014/04/03 职场文书
教师演讲稿大全
2014/05/16 职场文书
推广普通话演讲稿
2014/05/23 职场文书
2014年关工委工作总结
2014/11/17 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript