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 相关文章推荐
来自国外的30个基于jquery的Web下拉菜单
Jun 22 Javascript
js实现精确到秒的日期选择器完整实例
Apr 30 Javascript
jQuery1.9+中删除了live以后的替代方法
Jun 17 Javascript
AngularJS 实现JavaScript 动画效果详解
Sep 08 Javascript
Angular2利用组件与指令实现图片轮播组件
Mar 27 Javascript
javascript实现二叉树遍历的代码
Jun 08 Javascript
vue.js全局API之nextTick全面解析
Jul 07 Javascript
JS从非数组对象转数组的方法小结
Mar 26 Javascript
微信小程序修改swiper默认指示器样式的实例代码
Jul 18 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
如何在Angular应用中创建包含组件方法示例
Mar 23 Javascript
js实现删除li标签一行内容
Apr 16 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
php iconv() : Detected an illegal character in input string
2010/12/05 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
Python实现保证只能运行一个脚本实例
2015/06/24 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
网上签名寄语活动留言
2014/01/18 职场文书
人事部岗位职责范本
2014/03/05 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
linux目录管理方法介绍
2022/06/01 Servers
python manim实现排序算法动画示例
2022/08/14 Python