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下function声明一些小结
Dec 28 Javascript
getElementByIdx_x js自定义getElementById函数
Jan 24 Javascript
JavaScript对象之深度克隆介绍
Dec 08 Javascript
JS模拟Dialog弹出浮动框效果代码
Oct 16 Javascript
JavaScript制作颜色反转小游戏
Sep 25 Javascript
JS中实现函数return多个返回值的实例
Feb 21 Javascript
js实现时间轴自动排列效果
Mar 09 Javascript
令按钮悬浮在(手机)页面底部的实现方法
May 02 Javascript
JavaScript 下载svg图片为png格式
Jun 21 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
Sep 25 Javascript
JS实现简单日历特效
Jan 03 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对象的串行化与反串行化
2016/01/24 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
JQuery onload、ready概念介绍及使用方法
2013/04/27 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
提升Python程序运行效率的6个方法
2015/03/31 Python
从Python程序中访问Java类的简单示例
2015/04/20 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
django session完成状态保持的方法
2018/11/27 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
建筑自我鉴定
2013/10/19 职场文书
应届生财务会计求职信
2013/11/05 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
学校安全防火方案
2014/06/07 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
公司委托书格式范文
2014/10/09 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
党员进社区活动总结
2015/05/07 职场文书
反邪教教育心得体会
2016/01/15 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python