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中根据字数截取字符串,不能截断url
Jan 12 Javascript
JS操作Cookie写入和读取实例代码
Oct 20 Javascript
js中文逗号转英文实现
Feb 11 Javascript
网页中表单按回车就自动提交的问题的解决方案
Nov 03 Javascript
自己动手写的javascript前端等待控件
Oct 30 Javascript
深入浅析AngularJS和DataModel
Feb 16 Javascript
用JS生成UUID的方法实例
Mar 30 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
Dec 14 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
JS中超越现实的匿名函数用法实例分析
Jun 21 Javascript
解决vant的Toast组件时提示not defined的问题
Nov 11 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 FPDF类库应用实现代码
2009/03/20 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
如何离线执行php任务
2017/02/21 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
javascript自执行函数
2017/02/10 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
Python实现两个list对应元素相减操作示例
2017/06/09 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
工厂门卫岗位职责范本
2014/04/04 职场文书
2016情人节宣传语
2015/07/14 职场文书
Python多线程实用方法以及共享变量资源竞争问题
2022/04/12 Python