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 检测键盘按键信息及键码值对应介绍
Jan 03 Javascript
Asp.Net alert弹出提示信息的几种方法总结
Jan 29 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
Mar 04 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
Jun 14 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
Feb 03 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
protractor的安装与基本使用教程
Jul 07 Javascript
jquery操作ul的一些操作笔记整理(干货)
Aug 31 jQuery
详解vue-router传参的两种方式
Sep 10 Javascript
vue 项目 iOS WKWebView 加载
Apr 17 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
Feb 26 Javascript
React + Threejs + Swiper 实现全景图效果的完整代码
Jun 28 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
python实现复制大量文件功能
2019/08/31 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
有针对性的求职自荐信
2013/11/14 职场文书
双语教学实施方案
2014/03/23 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
2014年信用社工作总结
2014/11/25 职场文书
赢在执行观后感
2015/06/16 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle