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 相关文章推荐
基于prototype扩展的JavaScript常用函数库
Nov 30 Javascript
jquery中防刷IP流量软件影响统计的一点对策
Jul 10 Javascript
js 距离某一时间点时间是多少实现代码
Oct 14 Javascript
jQuery层级选择器用法分析
Feb 10 Javascript
jQuery实现鼠标经过事件的延时处理效果
Aug 20 Javascript
详解iframe与frame的区别
Jan 13 Javascript
详解javascript new的运行机制
Jan 26 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
Nov 01 Javascript
vue addRoutes实现动态权限路由菜单的示例
May 15 Javascript
详解mpvue开发小程序小总结
Jul 25 Javascript
React注册倒计时功能的实现
Sep 06 Javascript
谈谈IntersectionObserver懒加载的具体使用
Oct 15 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中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
Python range、enumerate和zip函数用法详解
2019/09/11 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
详解Canvas事件绑定
2018/06/27 HTML / CSS
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
无工作经验者个人求职信范文
2013/12/22 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
股东授权委托书范本
2014/09/13 职场文书
员工旷工检讨书
2015/08/15 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers