Javascript获取数组中的最大值和最小值的方法汇总


Posted in Javascript onJanuary 01, 2016

比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用自带的sort()函数,下面来介绍如下几种方法,代码如下:

方法一:

//最小值
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

方法三:

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]; 
console.log(getMaximin(a,"max"));//10
console.log(getMaximin(b,"min"));//04

方法四:

var a=[1,2,3,5];
alert(Math.max.apply(null, a));//最大值
alert(Math.min.apply(null, a));//最小值

多维数组可以这么修改:

var a=[1,2,3,[5,6],[1,4,8]];
var ta=a.join(",").split(",");//转化为一维数组
alert(Math.max.apply(null,ta));//最大值
alert(Math.min.apply(null,ta));//最小值

以上内容是小编给大家分享的Javascript获取数组中的最大值和最小值的方法汇总,希望大家喜欢。

Javascript 相关文章推荐
传智播客学习之JavaScript基础篇
Nov 13 Javascript
jquery 多级下拉菜单核心代码
May 21 Javascript
js取滚动条的尺寸的函数代码
Nov 30 Javascript
Javascript中string转date示例代码
Nov 01 Javascript
js弹出窗口返回值的简单实例
May 28 Javascript
JS实现一个简单的日历
Feb 22 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
Aug 03 Javascript
微信小程序实现图片滚动效果示例
Dec 05 Javascript
vue resource发送请求的几种方式
Sep 30 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
基于element-ui封装表单金额输入框的方法示例
Jan 06 Javascript
Javascript中Microtask和Macrotask鲜为人知的知识点
Apr 02 Javascript
实例详解JavaScript获取链接参数的方法
Jan 01 #Javascript
快速学习AngularJs HTTP响应拦截器
Dec 31 #Javascript
常见的javascript跨域通信方法
Dec 31 #Javascript
javascript实现input file上传图片预览效果
Dec 31 #Javascript
分享几种比较简单实用的JavaScript tabel切换
Dec 31 #Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 #Javascript
jQuery实现的超简单点赞效果实例分析
Dec 31 #Javascript
You might like
PHP实现ftp上传文件示例
2014/08/21 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
2019/04/10 PHP
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
python中zip和unzip数据的方法
2015/05/27 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
用matplotlib画等高线图详解
2017/12/14 Python
python实现弹窗祝福效果
2019/04/07 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
python 消费 kafka 数据教程
2019/12/21 Python
Python的形参和实参使用方式
2019/12/24 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
食品安全处置方案
2014/06/14 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
浅析Python中的套接字编程
2021/06/22 Python
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android