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 中关于CSS操作部分使用说明
Jun 10 Javascript
js 操作select相关方法函数
Dec 06 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
Aug 23 Javascript
node.js 一个简单的页面输出实现代码
Mar 07 Javascript
jquery阻止冒泡事件使用模拟事件
Sep 06 Javascript
Jquery选中或取消radio示例
Sep 29 Javascript
JavaScript中用getDate()方法返回指定日期的教程
Jun 09 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
Jul 05 Javascript
AngularJS中$http服务常用的应用及参数
Aug 22 Javascript
详解jQuery uploadify文件上传插件的使用方法
Dec 16 Javascript
vue 实现的树形菜的实例代码
Mar 19 Javascript
vue下axios拦截器token刷新机制的实例代码
Jan 17 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中的use关键字概述
2014/07/23 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
form自动提交实例讲解
2017/07/10 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
innerText 使用示例
2014/01/23 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
vue-axios使用详解
2017/05/10 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
Python入门篇之条件、循环
2014/10/17 Python
Python subprocess模块常见用法分析
2018/06/12 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
python用requests实现http请求代码实例
2019/10/31 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
先进事迹报告会感言
2014/01/24 职场文书
面试后的英文感谢信
2014/02/01 职场文书
对祖国的寄语大全
2014/04/11 职场文书
社会工作专业求职信
2014/07/15 职场文书
父亲节寄语大全
2015/02/27 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
800字作文之大雪
2019/12/04 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
python 进阶学习之python装饰器小结
2021/09/04 Python
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript