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 相关文章推荐
国外Lightbox v2.03.3 最新版 下载
Oct 17 Javascript
jQuery实用技巧必备(下)
Nov 03 Javascript
详解JavaScript的表达式与运算符
Nov 30 Javascript
解析预加载显示图片艺术
Dec 05 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
收藏AngularJS中最重要的核心功能
Jul 09 Javascript
vue.js数据绑定操作详解
Apr 23 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
Aug 31 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
vue 动态组件用法示例小结
Mar 06 Javascript
vue项目支付功能代码详解
Feb 18 Vue.js
vue+iview实现手机号分段输入框
Mar 25 Vue.js
使用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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
生成静态页面的php函数,php爱好者站推荐
2007/03/19 PHP
PHP数组操作类实例
2015/07/11 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
php生成word并下载代码实例
2019/03/15 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
动态样式类封装JS代码
2009/09/02 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
javascript中new关键字详解
2015/12/14 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
Python生成器(Generator)详解
2015/04/13 Python
python实现Windows电脑定时关机
2018/06/20 Python
Python爬取成语接龙类网站
2018/10/19 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
python实现3D地图可视化
2020/03/25 Python
python datetime处理时间小结
2020/04/16 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
中英双版中文教师求职信
2013/10/27 职场文书
招股说明书范本
2014/05/06 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
python库sklearn常用操作
2021/08/23 Python