JS实现获取数组中最大值或最小值功能示例


Posted in Javascript onMarch 02, 2019

本文实例讲述了JS实现获取数组中最大值或最小值功能。分享给大家供大家参考,具体如下:

方法一:

//最小值
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;
}
console.log([55,38,7,19].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;
}
console.log([55,38,7,19].max());

运行结果:

JS实现获取数组中最大值或最小值功能示例

如果引用了别的类库进行开发,害怕类库也用了同名的原型方法,可以在生成函数之前可以进行重名判断:

if(typeof Array.prototype['max'] == 'undefined'){
  Array.prototype.max = function(){...}
}

方法二:

//最小值
Math.min.apply(Math,arr); //等效于 Math.min.apply({},arr)和Math.min.apply(null,arr);
//原本取得最小值的方法是Math.min(n1,n2,n3...), apply可以改变参数的传入形式,第一个参数是什么都不是很重要
//最大值
var arr = [55,38,7,19];
console.log(Math.max.apply(Math,arr));

运行结果:

JS实现获取数组中最大值或最小值功能示例

多维数组可以先打散为一维数组再做以上处理。

var arr1 = [1,2,3,[5,6],[3,4,8]];
var arr2 = arr1.join(",").split(",");
var a = Math.min.apply(Math,arr2); 
console.log(a);

运行结果:

JS实现获取数组中最大值或最小值功能示例

方法三:

var arr = [55,38,7,19];
function getMaxMin(arr,maxmin){
  if(maxmin === "max"){
    return Math.max.apply(Math,arr);
  }else if(maxmin === "min"){
    return Math.min.apply(Math,arr);
  }
}
var a = getMaxMin(arr,"max");
console.log(a);
var b = getMaxMin(arr,"min");
console.log(b);

运行结果:

JS实现获取数组中最大值或最小值功能示例

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容还可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
用javascript getComputedStyle获取和设置style的原理
Oct 10 Javascript
Dom 结点创建 基础知识
Oct 01 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
May 15 Javascript
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
jQuery实现为图片添加镜头放大效果的方法
Jun 25 Javascript
解决jquery实现的radio重新选中的问题
Jul 03 Javascript
微信小程序 action-sheet底部菜单详解
Oct 27 Javascript
angular动态表单制作
Feb 23 Javascript
Vue中v-for的数据分组实例
Mar 07 Javascript
js实现内置计时器
Dec 16 Javascript
对vuex中store和$store的区别说明
Jul 24 Javascript
JavaScript 实现页面滚动动画
Apr 24 Javascript
JS使用队列对数组排列,基数排序算法示例
Mar 02 #Javascript
VUE引入第三方js包及调用方法讲解
Mar 01 #Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
Mar 01 #Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 #Javascript
Angular7.2.7路由使用初体验
Mar 01 #Javascript
vuex实现及简略解析(小结)
Mar 01 #Javascript
简单两步使用node发送qq邮件的方法
Mar 01 #Javascript
You might like
hadoop中一些常用的命令介绍
2013/06/19 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
php生成无限栏目树
2017/03/16 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
jquery+javascript编写国籍控件
2015/02/12 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
python pycurl验证basic和digest认证的方法
2018/05/02 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
生产总经理岗位职责
2013/12/19 职场文书
兴趣班停课通知
2015/04/24 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
妇产科护理心得体会
2016/01/22 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python
Redis入门基础常用操作命令整理
2022/06/01 Redis