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 相关文章推荐
AJAX架构之Dojo篇
Apr 10 Javascript
漂亮的widgets,支持换肤和后期开发新皮肤
Apr 23 Javascript
JQuery验证工具类搜集整理
Jan 16 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
Aug 03 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
Sep 10 Javascript
什么是cookie?js手动创建和存储cookie
May 27 Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
js闭包的用途详解
Nov 09 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
Mar 26 Javascript
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 Vue.js
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 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
javscript 数组扁平化的实现
2020/02/03 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
python33 urllib2使用方法细节讲解
2013/12/03 Python
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python 创建子进程模块subprocess详解
2015/04/08 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
Python3 replace()函数使用方法
2018/03/19 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
Python Django搭建网站流程图解
2020/06/13 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
机电专业个人自荐信格式模板
2013/09/23 职场文书
关于幼儿的自我评价
2013/12/18 职场文书
干部考察材料范文
2014/12/24 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL