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 相关文章推荐
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
JAVASCRIPT keycode总结
Feb 04 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
Dec 03 Javascript
JavaScript初学者应注意的七个细节详细介绍
Dec 27 Javascript
阻止子元素继承父元素事件具体思路及实现
May 02 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
分享15个大家都熟知的jquery小技巧
Dec 02 Javascript
基于javascript实现句子翻牌网页版小游戏
Mar 23 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
Sep 26 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
Jul 20 Javascript
js实现图片上传即时显示效果
Sep 30 Javascript
部署vue+Springboot前后端分离项目的步骤实现
May 31 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
js实现移动端轮播图
2020/12/21 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
人力资源专员自我评价怎么写
2013/09/19 职场文书
大学生就业自我鉴定
2013/10/26 职场文书
会计电算化应届生求职信
2013/11/03 职场文书
捐资助学倡议书
2014/04/15 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers