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.validate使用攻略 第五步 正则验证
Jul 01 Javascript
JQUERY获取form表单值的代码
Jul 17 Javascript
jQuery插件开发全解析
Oct 10 Javascript
基于Jquery实现键盘按键监听
May 11 Javascript
javascript函数声明和函数表达式区别分析
Dec 02 Javascript
jQuery Validate初步体验(二)
Dec 12 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
Jun 07 Javascript
Vue.js教程之计算属性
Nov 11 Javascript
javascript实现鼠标点击页面 移动DIV
Dec 02 Javascript
jQuery实现一个简单的验证码功能
Jun 26 jQuery
JS中关于正则的巧妙操作
Aug 31 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
Aug 13 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
js运动事件函数详解
2016/10/21 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
JAVA中截取字符串substring用法详解
2017/04/14 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
行政部经理助理岗位职责
2014/06/15 职场文书
个人委托书范文
2015/01/28 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
机关保密工作承诺书
2015/05/04 职场文书
团干部培训班心得体会
2016/01/06 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript