JavaScript 数组中最大最小值_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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript
java数组最大值最小值、查找数组最大值最小值、js 数组最大值最小值、vb数组最大值最小值、数组 最大值最小值,以便于您获取更多的相关知识。

时间: 2024-09-20 00:56:44

JavaScript 数组中最大最小值_javascript技巧的相关文章

COM中获取JavaScript数组大小的代码_javascript技巧

IDispatch类型的指针,则表明该数组对象实际是一个JavaScript的内建数组对象,在JavaScript端,我们可以通过length属性来得到数组的大小,那么在此处,可以通过GetIDsOfNames函数和Invoke函数来获取数组长度,这样可以动态变量数组内容. 复制代码 代码如下: // 获取数组长度 BSTR bstrLength = L"length"; DISPID dispid; hr = lpDispatch->GetIDsOfNames(IID_NULL

基于JavaScript实现移除(删除)数组中指定元素_javascript技巧

在Array对象中有给定的函数可以删除数组中指定的元素,虽然非常好用,但是总感觉看不到摸不着的比较别扭,下面就分享一个自定义的删除数组指定索引值元素的函数,希望给大家一个全新的思路. 代码实例如下: var array=[]; array[0]="一"; array[1]="二"; array[2]="三"; array[3]="四"; array[4]="五"; function remove(array

JavaScript如何获取数组最大值和最小值_javascript技巧

本文实例讲述了JavaScript实现的伸展收缩型菜单代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/199

javascript数组去重方法分析_javascript技巧

本文实例讲述了javascript数组去重方法.分享给大家供大家参考,具体如下: 方法一. 思路:创建一个新的空数组,循环遍历旧数组,用indexOf()方法,可以取得元素在数组中的位置,如果值为-1表示不存在.那么新数组用indexOf去获取老数组的每一个元素,如果值为-1表示不存在,就把他push到新数组里,最后输出新数组即去重后的数组 var arr=[24,56,74,89,24,56,78,09,24]; var new_arr=[]; for(var i=0;i<arr.length

Javascript数组操作函数总结_javascript技巧

其实平时用的比较多的应该是push和pop,不过还是都记下来,以便后面使用. shift :删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined 复制代码 代码如下: var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 unshift :将参数添加到原数组开头,并返回数组的长度 复制代码 代码如下: var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); //a:[-2,-

js拆分字符串并将分割的数据放到数组中的方法_javascript技巧

本文实例讲述了js拆分字符串并将分割的数据放到数组中的方法.分享给大家供大家参考.具体实现方法如下: var splitArray = new Array(); var string="太平洋.大西洋.印度洋.北冰洋"; var regex = /./; splitArray=string.split(regex); for(i=0; i < splitArray.length; i++){ document.write(splitArray[i] + "<br&

javascript数组去重方法汇总_javascript技巧

javascript数组去重方法汇总 Array.prototype.unique1 = function () { var n = []; //一个新的临时数组 for (var i = 0; i < this.length; i++) //遍历当前数组 { //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n.indexOf(this[i]) == -1) n.push(this[i]); } return n; }; Array.pro

JavaScript数组方法总结分析_javascript技巧

由于最近都在freecodecamp上刷代码,运用了很多JavaScript数组的方法,因此做了一份关于JavaScript教程的整理,具体内容如下: 一.普通方法 1.join() 将数组元素连接在一起,并以字符串形式返回 参数:可选,指定元素之间的分隔符,没有参数则默认为逗号 返回值:字符串 对原数组的影响:无 2.reverse()将数组的元素顺序变成倒序返回 参数:无 返回值:数组 对原数组的影响:原数组被修改为倒序排列之后的数组 3.sort()对数组元素进行排序并返回 参数:可选,排

详解JavaScript数组的操作大全_javascript技巧

本文给大家介绍js数组的操作非常详细,感兴趣的朋友一起学习本篇文章吧. 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element[, element[, ...[, elementN]]]]); //创建一个数组并赋值 要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况