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 相关文章推荐
完美解决JS中汉字显示乱码问题(已解决)
Dec 27 Javascript
jquery中通过父级查找进行定位示例
Jun 28 Javascript
js实现特定位取反原理及示例
Jun 30 Javascript
使用递归遍历对象获得value值的实现方法
Jun 14 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
Apr 10 Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
Grunt针对静态文件的压缩,版本控制打包的实例讲解
Sep 29 Javascript
Vue实现的父组件向子组件传值功能示例
Jan 19 Javascript
简单了解vue中的v-if和v-show的区别
Oct 08 Javascript
node解析修改nginx配置文件操作实例分析
Nov 06 Javascript
js实现动态时钟
Mar 12 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 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/10/04 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
Nodejs全栈框架StrongLoop推荐
2014/11/09 NodeJs
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
python模块之StringIO使用示例
2015/04/08 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
如何利用find命令查找文件
2016/11/18 面试题
初中生自我评价
2014/02/01 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
歌舞青春观后感
2015/06/10 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
部分武汉产收音机展览
2022/04/07 无线电