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中提前声明变量或函数例子
Nov 12 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
Nov 01 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 Javascript
浅谈javascript中new操作符的原理
Jun 07 Javascript
清除浏览器缓存的几种方法总结(必看)
Dec 09 Javascript
浅析上传头像示例及其注意事项
Dec 14 Javascript
bootstrap实现的自适应页面简单应用示例
Mar 09 Javascript
详解react服务端渲染(同构)的方法
Sep 21 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
Jan 10 Javascript
解决LayUI表单获取不到data的问题
Aug 20 Javascript
Vue自动构建发布脚本的方法示例
Jul 24 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
在WIN98下以apache模块方式安装php
2006/10/09 PHP
php一些公用函数的集合
2008/03/27 PHP
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
python版DDOS攻击脚本
2019/06/12 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
Python列表对象实现原理详解
2019/07/01 Python
Django的models中on_delete参数详解
2019/07/16 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
大码女装:Ulla Popken
2019/08/06 全球购物
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
平面设计的岗位职责
2013/11/08 职场文书
医学生职业规划范文
2014/01/05 职场文书
毕业生自荐书
2014/02/03 职场文书
仓管岗位职责范本
2014/02/08 职场文书
超市开学活动方案
2014/03/01 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
雷锋之歌观后感
2015/06/10 职场文书