JavaScript 数组中最大最小值

现在获取数组中最大最小值用的越来越多了,于是乎我编了个方法供大家使用。代码如下,若有问题可以与我联系,咱们一起学习一起进步。

我们来看下示例一:

var numReg = /^-?[0-9]+.?[0-9]*$/

Array.prototype.min = function() {
  return this.reduce(function(preValue, curValue,index,array) {
   if ( numReg.test(preValue) && numReg.test(curValue) ) {
      return preValue > curValue ? curValue : preValue;
   } else if ( numReg.test(preValue) ) {
   return preValue;
   } else if ( numReg.test(curValue) ) {
   return curValue;
   } else {
   return 0;
   }
  })
}

Array.prototype.max = function() {
  return this.reduce(function(preValue, curValue,index,array) {
   if ( numReg.test(preValue) && numReg.test(curValue) ) {
      return preValue < curValue ? curValue : preValue;
   } else if ( numReg.test(preValue) ) {
   return preValue;
   } else if ( numReg.test(curValue) ) {
   return curValue;
   } else {
   return 0;
   }
  })
}

示例二:

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] 

alert("aMax:" + getMaximin(a,"max") + "---aMin:" + getMaximin(a,"min") + "---bMax:" + getMaximin(b,"max") + "---bMin:" + getMaximin(b,"min"))//aMax:10---aMin:2---bMax:786---bMin:4 

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]

alert("aMax:" + getMaximin(a,"max") + "---aMin:" + getMaximin(a,"min") + "---bMax:" + getMaximin(b,"max") + "---bMin:" + getMaximin(b,"min"))//aMax:10---aMin:2---bMax:786---bMin:4

我们再来看2个方法

方法一:

//最小值
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
(0)

相关推荐

  • Javascript获取数组中的最大值和最小值的方法汇总

    比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用自带的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

  • 获取数组中最大最小值方法js代码(自写)

    现在获取数组中最大最小值用的越来越多了,于是乎我编了个方法供大家使用.代码如下,若有问题可以与我联系,咱们一起学习一起进步. 复制代码 代码如下: function getMaximin (arr,maximin) { if (maximin == "max") { return Math.max.apply(Math, arr); }else if (maximin == "min") { return Math.min.apply(Math, arr); } }

  • JS获取数组最大值、最小值及长度的方法

    本文实例讲述了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; } //最大值 Array.prototype.max = function()

  • JS获取随机数函数可自定义最小值最大值

    复制代码 代码如下: /** * lowerValue 最小值 * upperValue 最大值 */ function selectFrom(lowerValue, upperValue){ //取值范围总数 var choices = upperValue - lowerValue + 1; return Math.floor(Math.random() * choices + lowerValue); } var num = selectFrom(2, 10); alert(num);//

  • Js获取数组最大和最小值示例代码

    做项目的时候遇到一个返回查询内容里面,只取最大和最小值问题. 首先 复制代码 代码如下: /** * 数组最大值 * @param {Object} array * @return {TypeName} */ Array.max=function(array) { return Math.max.apply(Math,array); } /** * 数组最小值 * @param {Object} array * @return {TypeName} */ Array.min=function(a

  • JavaScript 数组中最大最小值

    现在获取数组中最大最小值用的越来越多了,于是乎我编了个方法供大家使用.代码如下,若有问题可以与我联系,咱们一起学习一起进步. 我们来看下示例一: var numReg = /^-?[0-9]+.?[0-9]*$/ Array.prototype.min = function() { return this.reduce(function(preValue, curValue,index,array) { if ( numReg.test(preValue) && numReg.test(c

  • Javascript数组中push方法用法分析

    本文实例讲述了Javascript数组中push方法用法.分享给大家供大家参考,具体如下: 看下面代码: var o = { 1:'a' ,2:'b' ,length:2 ,push:Array.prototype.push }; o.push('c'); Q:o现在内部的值是什么样子? 我的第一反应是排斥,为什么要研究不合理情况下[解释引擎]的行为?但是这种推论有时候又很吸引人,于是我回来的时候仔细思考了下,发现其实很简单. 对于push这个方法,我条件反射地想到的就是栈,[数据结构的经典栈]

  • C#获取数组中最大最小值的方法

    根据下面函数获取数组中最大最小值即可.调用时候直接传数组范围一个float类型的变量 public float MaxOfList(float[] flotNum) { float maxValue = flotNum.ToArray().Max(); return maxValue; } public float MinOfList(float[] flotNum) { float minValue = flotNum.ToArray().Max(); for (int i = 0; i <

  •  javascript数组中的slice方法和join​​方法

    目录 一.slice​​方法 1编辑器部分 2代码部分 3运行结果 二.join​​方法 1编辑器 2代码部分 3运行结果 前言: 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说slice​​和join​​方法不多说把代码编辑器打开​​ 一.slice​​方法 1编辑器部分 2代码部分 <html lang="en">   <head>     <meta charset="UTF-8" />     <

  • javascript数组中的concat方法和splice方法

    目录 一.concat方法 1直接vs打开 2代码块 3运行结果 二.splice方法 1代码部分 2运行结果 前言: 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说concat和splice方法的使用​​不多说把代码编辑器打开​​ 一.concat方法 1直接vs打开 2代码块 //功能:合并数组,可以合并一个或多个数组,会返回合并数组之后的数据,不会改变原来的数组:   const geyao = ['歌谣']   const fuzhu=["很强"]    

  • javascript数组中的reduce方法和pop方法

    目录 一.reduce方法 1直接vs打开 2代码部分 3运行结果 二.pop方 1直接vs打开 2代码部分 3运行结果 前言: 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说foreach和pop方法的使用​​不多说把代码编辑器打开​​ 一.reduce方法 1直接vs打开 2代码部分 var geyao=[1,3,5]     let sum = arr.reduce(function(prev, cur, index, arr) {     console.log(pr

  •  javascript数组中的findIndex方法 

    目录 1findIndex()简单介绍 2编辑器 3代码部分 4运行结果 5总结 1findIndex()简单介绍 findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置. 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置(注:find()返回的是元素),之后的值不会再调用执行函数.如果没有符合条件的元素返回 -1(注:find()返回的是undefined). findIndex()与find()的使用方法相同,

  •  javascript数组中的lastIndexOf方法

    目录 1前言 ​​2编辑器打开​​ 3代码部分 4运行结果 5总结 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说lastIndexOf方法,lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索. 语法: stringObject.lastIndexOf(searchvalue,fromindex) 参数 描述 searchvalue 必需.规定需检索的字符串值. fromindex 可选的整数参数.规定在字符串

  • javascript数组中的map方法和filter方法

    目录 一.map方法 1编辑器 2代码部分 3运行结果 二.filter方法 1编辑器 2代码 3运行结果 一.map方法 1编辑器 编辑器搞出来 一起研究研究数组中的map方法: 2代码部分 var geyao=['歌谣',"很帅","很强"]     geyao.map((currentValue,index,arr,thisValue)=>{         console.log(currentValue,"currentValue"

随机推荐