最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 數(shù)組中最大最小值

 更新時(shí)間:2016年06月05日 11:57:55   投稿:hebedich  
本文給大家匯總介紹的是獲取JavaScript 數(shù)組中最大最小值的方法和示例,非常的詳細(xì)和全面,希望對(duì)大家學(xué)習(xí)JavaScript能夠有所幫助

現(xiàn)在獲取數(shù)組中最大最小值用的越來(lái)越多了,于是乎我編了個(gè)方法供大家使用。代碼如下,若有問(wèn)題可以與我聯(lián)系,咱們一起學(xué)習(xí)一起進(jìn)步。

我們來(lái)看下示例一:

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

我們?cè)賮?lái)看2個(gè)方法

方法一:

//最小值
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;
}

如果你是引入類(lèi)庫(kù)進(jìn)行開(kāi)發(fā),害怕類(lèi)庫(kù)也實(shí)現(xiàn)了同名的原型方法,可以在生成函數(shù)之前進(jìn)行重名判斷:

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

方法二:

用Math.max和Math.min方法可以迅速得到結(jié)果。apply能讓一個(gè)方法指定調(diào)用對(duì)象與傳入?yún)?shù),并且傳入?yún)?shù)是以數(shù)組形式組織的。恰恰現(xiàn)在有一個(gè)方法叫Math.max,調(diào)用對(duì)象為Math,與多個(gè)參數(shù)

Array.max = function( array ){ 
return Math.max.apply( Math, array );
};

Array.min = function( array ){ 
return Math.min.apply( Math, array );
};

但是,John Resig是把它們做成Math對(duì)象的靜態(tài)方法,不能使用大神最?lèi)?ài)用的鏈?zhǔn)秸{(diào)用了。但這方法還能更精簡(jiǎn)一些,不要忘記,Math對(duì)象也是一個(gè)對(duì)象,我們用對(duì)象的字面量來(lái)寫(xiě),又可以省幾個(gè)比特了。

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

相關(guān)文章

最新評(píng)論

长葛市| 巨鹿县| 来宾市| 盐池县| 嘉善县| 修武县| 莒南县| 钟祥市| 彭泽县| 荣成市| 贵州省| 明溪县| 亳州市| 监利县| 阿拉善右旗| 吉水县| 常宁市| 无锡市| 玉门市| 贵港市| 九江县| 大名县| 全南县| 辽阳市| 华宁县| 阿尔山市| 聂荣县| 平原县| 凤庆县| 玉林市| 轮台县| 冀州市| 北安市| 连江县| 双牌县| 洛隆县| 会泽县| 柯坪县| 碌曲县| 阿拉善右旗| 嘉禾县|