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 相关文章推荐
json简单介绍
Jun 10 Javascript
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
javascript真的不难-回顾一下基础知识
Jan 15 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
Aug 18 Javascript
jquery获取div距离窗口和父级dv的距离示例
Oct 10 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
Dec 15 Javascript
jQuery中next方法用法实例
Apr 24 Javascript
JavaScript中的setUTCDate()方法使用详解
Jun 11 Javascript
浅谈如何实现easyui的datebox格式化
Jun 12 Javascript
基于JS脚本语言的基础语法详解
Jul 22 Javascript
php中and 和 &&出坑指南
Jul 13 Javascript
微信小程序实现弹出层效果
May 26 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 格式化数字的时候注意数字的范围
2010/04/13 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
js tab 选项卡
2009/04/26 Javascript
checkbox 复选框不能为空
2009/07/11 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
python实现sublime3的less编译插件示例
2014/04/27 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
如何通过python检查文件是否被占用
2020/12/18 Python
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
酒店值班经理的工作职责范本
2014/02/18 职场文书
《去年的树》教学反思
2014/04/11 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
500字作文之周记
2019/12/13 职场文书