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 相关文章推荐
自己的js工具 Event封装
Aug 21 Javascript
Knockout visible绑定使用方法
Nov 15 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
Dec 25 Javascript
javascript屏蔽右键代码
May 15 Javascript
Node.js(安装,启动,测试)
Jun 09 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
Sep 03 Javascript
javascript 判断整数方法分享
Dec 16 Javascript
JQuery中$.each 和$(selector).each()的区别详解
Mar 13 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
Sep 14 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
Bootstrap零基础学习第一课之模板
Jul 18 Javascript
karma+webpack搭建vue单元测试环境的方法示例
May 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
什么是MVC,好东西啊
2007/05/03 PHP
php 全文搜索和替换的实现代码
2008/07/29 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
PHP 错误处理机制
2015/07/06 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
php实现记事本案例
2020/10/20 PHP
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
深入探讨前端框架react
2015/12/09 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
python 深度学习中的4种激活函数
2020/09/18 Python
Python学习之time模块的基本使用
2021/01/17 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
食品流通安全承诺书
2014/05/22 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
医院见习总结
2015/06/24 职场文书
php png失真的原因及解决办法
2021/10/24 PHP
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技