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 相关文章推荐
火狐4、谷歌12不支持Jquery Validator的解决方法分享
Jun 20 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
Oct 06 Javascript
非常漂亮的相册集 使用jquery制作相册集
Apr 28 Javascript
Javascript中的迭代、归并方法详解
Jun 14 Javascript
D3.js实现饼状图的方法详解
Sep 21 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
Sep 29 Javascript
JavaScript制作弹出层效果
Dec 02 Javascript
利用node.js实现自动生成前端项目组件的方法详解
Jul 12 Javascript
解决vue里碰到 $refs 的问题的方法
Jul 13 Javascript
用Vue写一个分页器的示例代码
Apr 22 Javascript
node.js文件操作系统实例详解
Nov 05 Javascript
基于vue 动态菜单 刷新空白问题的解决
Aug 06 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
PHP编程网上资源导航
2006/10/09 PHP
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
php导入大量数据到mysql性能优化技巧
2014/12/29 PHP
php blowfish加密解密算法
2016/07/02 PHP
jquery 指南/入门基础
2007/11/30 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
js实现3D旋转效果
2020/08/18 Javascript
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python 异常处理的实例详解
2017/09/11 Python
python函数不定长参数使用方法解析
2019/12/14 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
Numpy之reshape()使用详解
2019/12/26 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
夜大毕业生自我鉴定
2013/10/31 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
合同审查法律意见书
2015/06/04 职场文书
销售会议开幕词
2016/03/04 职场文书
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers