使用的API

js获取数字数组前n项和方法,用js自带的API Array.prototype.reduce方法
都可直接直接复制代码到console窗口下运行

简单例子

var array = [0,1,2,3,4,5];
var front3Total = array.reduce(function(pre,cur,index,arr){if(index>3-1){return pre+0;}return pre+cur;
});
front3Total;

自己进行封装

简单封装下,把这方法扩展到数组API中去,也就是Array.prototype中去

var array = [0,1,2,3,4,5];
Array.prototype.getNumArrayTotal = function(num){
var total = this.reduce(function(pre,cur,index,arr){if(index>num-1){return pre+0;}return pre+cur;
});
return total;
};
console.log(array.getNumArrayTotal());//不传参数,计算数组项所有和
console.log(array.getNumArrayTotal(100));//超过数组长度也是所有项之和console.log(array.getNumArrayTotal(-1));//负数、0、1都是第一项的值,pre默认为第一项的值.
console.log(array.getNumArrayTotal(0));
console.log(array.getNumArrayTotal(1));console.log(array.getNumArrayTotal(2));

继续扩展

如何还想继续扩展的话,比如普通数组,里面含有数字字符串、boolean类型、数字、或者其他的,大家可以定义自己的规则再进行扩展。我这里在扩展下,如果数组项为数字字符串、boolean 将其转换成数字 然后在求和,其他类型不做求和。主要是类型的判断和数组第0项的处理.

var array1 = ["1",true,false,"2","asdf"]
Array.prototype.getNumArrayTotal1 = function(num){
var total = this.reduce(function(pre,cur,index,arr){
var cur = Number(cur);if(index==1){//第0项要做特殊处理,如果第一项不能转换成数字将其视为0var pre = Number(pre);
if(isNaN(pre)){
pre = 0;
}if(index>num-1){
return pre+0;}
return pre+cur;
}
if(isNaN(cur)){//非数字不加当前项的值
return pre;
}else{//可以转换数字
if(index>num-1){
return pre+0;}return pre+cur;
}});
return total;
};
console.log(array1.getNumArrayTotal1());//不传参数,计算数组项所有和
console.log(array1.getNumArrayTotal1(100));//超过数组长度也是所有项之和
console.log(array1.getNumArrayTotal1(-1));//负数、0、1都是第一项的值
console.log(array1.getNumArrayTotal1(0));
console.log(array1.getNumArrayTotal1(1));
console.log(array1.getNumArrayTotal1(2));

js获取数组前n项的和相关推荐

  1. js将数组中相同项放在一个数组

    js将数组中相同项放在一个数组 原本数组长这样:图一 想将数组中相同项放在一个数组 得到:图二 转换中也可以得到:图三 方法: sortArr(arr, str) {var _arr = [],_t ...

  2. js 获取数组的深度

    js 获取数组的深度 通过递归的方法 getDepth(arr, depth) {var flag = false;var temp = [];for (let i = 0; i < arr.l ...

  3. js获取数组长度-length属性的介绍

    js获取数组长度-length属性的介绍 length属性 length 属性不能体现数组元素的实际个数 length 属性值动态变化对数组的影响 length属性 在 js 中获取数组长度非常简单, ...

  4. html获取数组的前三个元素,web前端:js 获取数组最后一个元素

    Javascript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标 ...

  5. JS - 获取数组重复项

    数组-获取数组重复项 场景一:有时候我们需要重复项,给用户二次确认数据 场景二:只要非重复项数据 场景三:把相同类型数据排列在一起 以下可以满足以上场景 //数据 const List=[{name: ...

  6. js 获取数组最后一个元素

    JavaScript 获取数组的最后一个元素,JavaScript 获取Array末尾元素 一.JavaScript pop() 方法 pop() 方法用于删除并返回数组的最后一个元素. 注意:pop ...

  7. JS获取数组元素下标,获取数组元素,删除数组元素,添加数组元素

    /* 获取数组元素下标 */var i=list_done.map(item=>item.text).indexOf(value);/* 获取数组元素 */var cur_item=list_d ...

  8. js提取数组某一项的属性值,组成新数组

    js提取数组某一属性值,将每一项的某个属性之,组成新数组. var arr = [{ id: 1, name: "张三" },{ id: 2, name: "李四&quo ...

  9. Js获取 数组或对象 的长度

    Javascript 计算Object的长度 获取数组长度比较简单 Var arr=["as","da"]; arr.length不用加();   在我们日常开 ...

最新文章

  1. Hibernate 笔记1
  2. 深度学习系列:深度学习在腾讯的平台化和应用实践
  3. String,char,数组,列表 相互转化 (更新中)
  4. 数据库中敏感字段的标记、标示
  5. 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #15 ramzswap
  6. DevCon.exe (DevCon Command Line Utility)
  7. WebSphere MQ 安装
  8. [源码]天骄天下个人网站系统(三个月倾情打造)
  9. php 保護連接字符串,PHP字符串操作
  10. Windows程序设计:一个简单的API函数调用实例
  11. 新闻分类:多分类问题
  12. 揭开Angular 7的神秘面纱
  13. [Obsidian]懒人必备插件附使用教程
  14. 国内图像处理相关期刊
  15. STM32F4寄存器初始化系列:GPIO
  16. jq 监听 radio 选择
  17. 华为路由器连接小米电视无法联网问题
  18. 从SEO优化角度打造移动端网站的移动建站指南
  19. 旭日X3派更新最小启动固件
  20. 世界杯感悟--我的2022卡塔尔世界杯

热门文章

  1. python 非线性多项式拟合_用python进行非线性回归-有什么简单的方法可以更好地拟合这些数据?...
  2. 2.3 基本算法之递归变递推 放苹果 python
  3. 使用百度webuploader插件进行多文件类型分片上传实例
  4. RTX5 | 线程标志组02 - 获取线程标志与清除线程标志
  5. 本地Apache配置虚拟主机/域名
  6. 正则表达式加参数匹配
  7. Qt工作笔记-QFileSystemModel创建文件系统信息模型
  8. Qt学习笔记-使用shape() 使得碰撞更加精确
  9. go 多行字符串_Go语言基本功,了解Go语言基础语法
  10. mysql 动态hash_python动态渲染库_python 动态渲染 mysql 配置文件的示例