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 相关文章推荐
function, new function, new Function之间的区别
Mar 08 Javascript
深入认识javascript中的eval函数
Nov 02 Javascript
js word表格动态添加代码
Jun 07 Javascript
jQuery EasyUI API 中文文档 搜索框
Sep 29 Javascript
javascript实现的元素拖动函数宿主为浏览器
Jul 21 Javascript
浅谈JS中逗号运算符的用法
Jun 12 Javascript
利用Javascript开发一个二维周视图日历
Dec 14 Javascript
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
浅谈React的最大亮点之虚拟DOM
May 29 Javascript
小程序外卖订单界面的示例代码
Dec 30 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
Jun 10 Javascript
jquery实现简单自动轮播图效果
Jul 29 jQuery
实例详解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安装攻略:常见问题解答(二)
2006/10/09 PHP
使用php实现截取指定长度
2013/08/06 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
详解微信小程序canvas圆角矩形的绘制的方法
2018/08/22 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
python 运算符 供重载参考
2009/06/11 Python
列举Python中吸引人的一些特性
2015/04/09 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
彻底理解Python中的yield关键字
2019/04/01 Python
python SocketServer源码深入解读
2019/09/17 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
编辑个人求职信范文
2013/09/21 职场文书
电大毕业生自我鉴定
2013/11/10 职场文书
机关门卫制度
2014/02/01 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
委托培训协议书
2014/11/17 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
2016年感恩节寄语
2015/12/07 职场文书
导游词之西递宏村
2019/12/10 职场文书
如何在Python中创建二叉树
2021/03/30 Python