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调用WebService的示例
Apr 07 Javascript
select组合框option的捕捉实例代码
Sep 30 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
Jan 11 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
Jun 11 Javascript
jQuery 全选 全部选 反选 实现代码
Aug 17 Javascript
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
React-Native中props具体使用详解
Sep 04 Javascript
JS Input里添加小图标的两种方法
Nov 11 Javascript
vue实现在线翻译功能
Sep 27 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
Oct 22 Javascript
JavaScript中的几种继承方法示例
Dec 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 常用函数库和一些实用小技巧
2009/01/01 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
yii添删改查实例
2015/11/16 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
定义select的边框颜色
2008/04/28 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
微信小程序实现多选功能
2018/11/04 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
python中的列表推导浅析
2014/04/26 Python
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
能源工程专业应届生求职信
2014/03/01 职场文书
合作协议书模板
2014/10/10 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
opencv检测动态物体的实现
2021/07/21 Python
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python
详解flex:1什么意思
2022/07/23 HTML / CSS