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 相关文章推荐
jQuery 操作XML入门
Dec 25 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
Mar 24 Javascript
JavaScript几种形式的树结构菜单
May 10 Javascript
用JavaScript修改CSS属性的代码
May 06 Javascript
JS自调用匿名函数具体实现
Feb 11 Javascript
用js设置下拉框为只读的小技巧
Apr 10 Javascript
javascript中offset、client、scroll的属性总结
Aug 13 Javascript
js防阻塞加载的实现方法
Sep 09 Javascript
使用重写url机制实现验证码换一张功能
Aug 01 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
Sep 15 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
Dec 07 Javascript
Vue实现图片轮播组件思路及实例解析
May 11 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP常量define和const的区别详解
2019/05/18 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
php桥接模式应用案例分析
2019/10/23 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
python文件和文件夹复制函数
2020/02/07 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
python的launcher用法知识点总结
2020/08/07 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
内部类的定义、种类以及优点
2013/10/16 面试题
计算机专业个人求职信范例
2013/09/23 职场文书
药学专业个人自我评价
2013/11/11 职场文书
公司委托书怎么写
2014/08/02 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
2014年学生工作总结
2014/11/20 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
情人节单身感言
2015/08/03 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书