JavaScript 数组中最大最小值


Posted in Javascript onJune 05, 2016

现在获取数组中最大最小值用的越来越多了,于是乎我编了个方法供大家使用。代码如下,若有问题可以与我联系,咱们一起学习一起进步。

我们来看下示例一:

var numReg = /^-?[0-9]+.?[0-9]*$/

Array.prototype.min = function() {
  return this.reduce(function(preValue, curValue,index,array) {
   if ( numReg.test(preValue) && numReg.test(curValue) ) {
      return preValue > curValue ? curValue : preValue;
   } else if ( numReg.test(preValue) ) {
   return preValue;
   } else if ( numReg.test(curValue) ) {
   return curValue;
   } else {
   return 0;
   }
  })
}

Array.prototype.max = function() {
  return this.reduce(function(preValue, curValue,index,array) {
   if ( numReg.test(preValue) && numReg.test(curValue) ) {
      return preValue < curValue ? curValue : preValue;
   } else if ( numReg.test(preValue) ) {
   return preValue;
   } else if ( numReg.test(curValue) ) {
   return curValue;
   } else {
   return 0;
   }
  })
}

示例二:

function getMaximin (arr,maximin) { 
 if (maximin == "max") { 
  return Math.max.apply(Math, arr); 
 }else if (maximin == "min") { 
  return Math.min.apply(Math, arr); 
 } 
} 
 
var a = [3,2,4,2,10] 
 
var b = [12,4,45,786,9,78] 
 
alert("aMax:" + getMaximin(a,"max") + "---aMin:" + getMaximin(a,"min") + "---bMax:" + getMaximin(b,"max") + "---bMin:" + getMaximin(b,"min"))//aMax:10---aMin:2---bMax:786---bMin:4 
 
function getMaximin (arr,maximin) {
 if (maximin == "max") {
  return Math.max.apply(Math, arr);
 }else if (maximin == "min") {
  return Math.min.apply(Math, arr);
 }
}
 
var a = [3,2,4,2,10]
 
var b = [12,4,45,786,9,78]
 
alert("aMax:" + getMaximin(a,"max") + "---aMin:" + getMaximin(a,"min") + "---bMax:" + getMaximin(b,"max") + "---bMin:" + getMaximin(b,"min"))//aMax:10---aMin:2---bMax:786---bMin:4

我们再来看2个方法

方法一:

//最小值
Array.prototype.min = function() {
var min = this[0];
var len = this.length;
for (var i = 1; i < len; i++){ 
if (this[i] < min){ 
min = this[i]; 
} 
} 
return min;
}
//最大值
Array.prototype.max = function() { 
var max = this[0];
var len = this.length; 
for (var i = 1; i < len; i++){ 
if (this[i] > max) { 
max = this[i]; 
} 
} 
return max;
}

如果你是引入类库进行开发,害怕类库也实现了同名的原型方法,可以在生成函数之前进行重名判断:

if (typeof Array.prototype['max'] == 'undefined') { 
Array.prototype.max = function() { 
... ...
}
}

方法二:

用Math.max和Math.min方法可以迅速得到结果。apply能让一个方法指定调用对象与传入参数,并且传入参数是以数组形式组织的。恰恰现在有一个方法叫Math.max,调用对象为Math,与多个参数

Array.max = function( array ){ 
return Math.max.apply( Math, array );
};

Array.min = function( array ){ 
return Math.min.apply( Math, array );
};

但是,John Resig是把它们做成Math对象的静态方法,不能使用大神最爱用的链式调用了。但这方法还能更精简一些,不要忘记,Math对象也是一个对象,我们用对象的字面量来写,又可以省几个比特了。

Array.prototype.max = function(){ 
return Math.max.apply({},this) 
} 
Array.prototype.min = function(){ 
return Math.min.apply({},this) 
} 
[1,2,3].max()// => 3 
[1,2,3].min()// => 1
Javascript 相关文章推荐
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
jquery实现经典的淡入淡出选项卡效果代码
Sep 22 Javascript
js代码实现点击按钮出现60秒倒计时
Jan 28 Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 Javascript
node.js实现回调的方法示例
Mar 01 Javascript
js, jQuery实现全选、反选功能
Mar 08 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 Javascript
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
基于Two.js实现星球环绕动画效果的示例
Nov 06 Javascript
node跨域转发 express+http-proxy-middleware的使用
May 31 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
Jan 06 Javascript
基于Element封装一个表格组件tableList的使用方法
Jun 29 Javascript
使用three.js 画渐变的直线
Jun 05 #Javascript
jquery判断input值不为空的方法
Jun 05 #Javascript
jQuery四种选择器使用及示例
Jun 05 #Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
Jun 05 #Javascript
分享javascript实现的冒泡排序代码并优化
Jun 05 #Javascript
EasyUI布局 高度自适应
Jun 04 #Javascript
javascript获取select标签选中的值
Jun 04 #Javascript
You might like
如何选购合适的收音机
2021/03/01 无线电
PHP小教程之实现双向链表
2014/06/12 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
JavaScript 基础问答三
2008/12/03 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
Python正则表达式使用经典实例
2016/06/21 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
寒假社会实践个人总结
2015/03/06 职场文书