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 相关文章推荐
多广告投放代码 推荐
Nov 13 Javascript
js 纯数字不重复排列的另类方法
Jul 17 Javascript
javascript innerHTML使用分析
Dec 03 Javascript
jquery select(列表)的操作(取值/赋值)
Mar 16 Javascript
一个简单的全屏图片上下打开显示网页效果示例
Jul 08 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
Jun 04 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
JavaScript定时器setTimeout()和setInterval()详解
Aug 18 Javascript
bootstrap-table formatter 使用vue组件的方法
May 09 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
Aug 22 Javascript
ant-design-vue中tree增删改的操作方法
Nov 03 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
星际中的相关伤害
2020/03/04 星际争霸
PHP文件读写操作相关函数总结
2014/11/18 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
python逆序打印各位数字的方法
2018/06/25 Python
python将数组n等分的实例
2019/12/02 Python
python几种常用功能实现代码实例
2019/12/25 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
创立科技Java面试题
2015/11/29 面试题
奶茶店创业计划书范文
2014/01/17 职场文书
共产党员公开承诺书
2014/03/25 职场文书
事业单位鉴定材料
2014/05/25 职场文书
食品工程专业求职信
2014/06/15 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
五年级小学生评语
2014/12/26 职场文书
实习科室评语
2015/01/04 职场文书
党支部评议意见
2015/06/02 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android