小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JS對數(shù)組取最大值與最小值的方法

 WindySky 2009-10-12


如何為數(shù)組取最大值與最小值。最笨的方法估計是這樣:

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;
}
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;
}
如果你是引入類庫進(jìn)行工作,害怕類庫也實現(xiàn)了同名的原型方法,我們可以在生成之前進(jìn)行判斷:
if (typeof Array.prototype['max'] == 'undefined') { 
 Array.prototype.max = function() {    
  //************略*************
 }
}
但這兩個擴(kuò)展實現(xiàn)得的確不怎么樣?!有什么原生的方法可以給我們用一用呢?John Resig巧妙地利用apply方法來調(diào)用原生的Math.max與Math.min方法迅速求得結(jié)果。apply能讓一個方法指定調(diào)用對象與傳入?yún)?shù),并且傳入?yún)?shù)是以數(shù)組形式組織的。恰恰現(xiàn)在有一個方法叫Math.max,調(diào)用對象為Math,與多個參數(shù)。

Array.max = function( array ){   
 return Math.max.apply( Math, array );
};
 
Array.min = function( array ){    
 return Math.min.apply( Math, array );
};
不過,John Resig是把它們做成Math對象的靜態(tài)方法,不能使用大神最愛用的鏈?zhǔn)秸{(diào)用了。但這方法還能更精簡一些,不要忘記,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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多