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 日历提醒系统( 兼容所有浏览器 )
Apr 07 Javascript
prettify 代码高亮着色器google出品
Dec 28 Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 Javascript
JavaScript获取表单内所有元素值的方法
Apr 02 Javascript
jQuery插件pagewalkthrough实现引导页效果
Jul 05 Javascript
javascript禁止访客复制网页内容的实现代码
Aug 05 Javascript
如何用angularjs制作一个完整的表格
Jan 21 Javascript
jsp 自动编译机制详细介绍
Dec 01 Javascript
详解webpack4多入口、多页面项目构建案例
May 25 Javascript
Vue实现表格批量审核功能实例代码
May 28 Javascript
vue中的mescroll搜索运用及各种填坑处理
Oct 30 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
php接口技术实例详解
2016/12/07 PHP
js left,right,mid函数
2008/06/10 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
AngularJS语法详解
2015/01/23 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
python版本的读写锁操作方法
2016/04/25 Python
怎样使用Python脚本日志功能
2016/08/14 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
python 模块导入问题汇总
2021/02/01 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
甜品店的创业计划书范文
2014/01/02 职场文书
数学系毕业生求职信
2014/05/29 职场文书
学校四风对照检查材料
2014/08/28 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
批评与自我批评范文
2014/10/15 职场文书
2015年度保密工作总结
2015/04/24 职场文书
四则混合运算教学反思
2016/02/23 职场文书
Java死锁的排查
2022/05/11 Java/Android
cypress测试本地web应用
2022/06/01 Javascript