自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何讓數(shù)組取最大值與最小值的方法討論

開發(fā) 后端
這里將介紹數(shù)組取最大值與最小值的方法,希望本文能對大家操作數(shù)組,有所幫助。

在一個(gè)數(shù)組中,如何取最大值與最小值有很多種方法,這里我們將從最笨的方法講起,然后講述改進(jìn)后的方法。

原型是個(gè)好東西,通常除了Object的原型不應(yīng)該擴(kuò)展,向原型添加新方法是很好的選擇。

我們看一下如何為數(shù)組取最大值與最小值。最笨的方法估計(jì)是這樣:

01.Array.prototype.max = function() {
02.  var max = this[0];
03.  var len = this.length;
04.  for (var i = 1; i < len; i++){
05.    if (this[i] > max) {
06.      max = this[i];
07.    }
08.  
09.  return max;
10.}
11.Array.prototype.min = function() {
12.  var min = this[0];
13.  var len = this.length;
14.  for (var i = 1; i < len; i++){
15.    if (this[i] < min){
16.      min = this[i];
17.    
18.  
19.  return min;
20.}

如果你是引入類庫進(jìn)行工作,害怕類庫也實(shí)現(xiàn)了同名的原型方法,我們可以在生成之前進(jìn)行判斷:

1.if (typeof Array.prototype['max'] == 'undefined') {
2.  Array.prototype.max = function() {
3.    //************略*************
4.  }
5.}

但這兩個(gè)擴(kuò)展實(shí)現(xiàn)得的確不怎么樣?!有什么原生的方法可以給我們用一用呢?John Resig巧妙地利用apply方法來調(diào)用原生的Math.max與Math.min方法迅速求得結(jié)果。apply能讓一個(gè)方法指定調(diào)用對象與傳入?yún)?shù),并且傳入?yún)?shù)是以數(shù)組形式組織的。恰恰現(xiàn)在有一個(gè)方法叫Math.max,調(diào)用對象為Math,與多個(gè)參數(shù)。

1.Array.max = function( array ){
2.    return Math.max.apply( Math, array );
3.};
4.  
5.Array.min = function( array ){
6.    return Math.min.apply( Math, array );
7.};

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

1.Array.prototype.max = function(){
2.  return Math.max.apply({},this)
3.}
4.Array.prototype.min = function(){
5.  return Math.min.apply({},this)
6.}
1.[1,2,3].max()// => 3
2.[1,2,3].min()// => 1

【編輯推薦】

  1. C#數(shù)組操作的體會(huì)淺談
  2. 全面介紹C#指針操作
  3. C#數(shù)組初始化的應(yīng)用實(shí)例解析
  4. C#指針使用簡析
  5. 淺談C#數(shù)組工作方式
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2010-09-26 15:56:59

SQL查詢

2010-11-24 16:42:40

mysql命令行求最小

2019-01-08 15:11:50

最大值最小值算法

2021-05-09 22:41:43

Python數(shù)據(jù)統(tǒng)計(jì)

2010-09-26 16:12:57

SQL查詢

2010-11-24 11:52:15

MYSQL表字段最大值

2020-10-13 08:53:04

算法最小值

2010-10-12 14:27:57

mysql全文索引

2022-09-26 12:17:14

clamp() 函數(shù)CSS

2012-06-18 10:19:26

Oracle安全

2017-07-03 10:52:20

深度學(xué)習(xí)人工智能

2010-11-25 14:49:08

MySQL查詢最大值

2010-05-27 14:27:30

MySQL全文索引

2021-04-23 09:58:28

O(1)序列

2021-04-29 10:01:30

JavaMathJava編程

2016-09-21 21:22:11

Javascript前端數(shù)學(xué)

2024-04-18 08:51:10

原碼反碼補(bǔ)碼

2022-12-28 08:16:16

metric聚合java

2015-07-13 13:12:51

閃存數(shù)據(jù)中心

2011-01-19 11:14:45

程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號