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.jstree 增加节点的双击事件代码
Jul 27 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
Sep 09 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
Angular.js中上传指令ng-upload的基本使用教程
Jul 30 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
Oct 12 Javascript
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
Sep 20 Javascript
微信小程序Page中data数据操作和函数调用方法
May 08 Javascript
vue项目前端错误收集之sentry教程详解
May 27 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
Sep 19 Javascript
React中使用UMEditor的方法示例
Dec 27 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
three.js 入门案例详解
2018/01/23 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
python里将list中元素依次向前移动一位
2014/09/12 Python
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
python中time包实例详解
2021/02/02 Python
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
美发活动策划书
2014/01/14 职场文书
自荐信格式简述
2014/01/25 职场文书
珍惜水资源建议书
2014/03/12 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js