js巧用apply方法實現數組最值以及合并

來源:互聯網
上載者:User

標籤:

儘管js的apply方法在平常的使用中並不多見,但是在某些地方使用的還是很有協助性的,這裡就和大家說兩個比較實用的例子:
1.數組最大最小值

求數組中的最大最小值,js有相應的方法:Math.min(),Math.max(),但是這兩個方法有個不方便的地方就是其參數不能是數組,而是單個元素值,即(para1,para2,para3....)。所以使用就沒有那麼方便了,但是我們可以使用這個方法:

var min = Math.min.apply(null, arr);var max = Math.max.apply(null, arr);

 2.數組合并。數組的合并也和求最值一樣,我們可以使用簡單的push(para1);進行迴圈push.但我們也可以使用比較簡單的方法: 

Array.prototype.push.apply(arrA, arrB); //將數組arrB push到數組 arrA中。

  

這裡要解釋下能這麼用的原因。從另外一個關於apply的文章,我們可以瞭解到,function的apply方法的第二個參數是一個數組集合, 在調用的時候,他需要的不是一個數組,但是為什麼他給我一個數組我仍然可以將數組解析為一個一個的參數,這個就是apply的一個巧妙的用處,可以將一個數組預設的轉換為一個參數列表([param1,param2,param3] 轉換為 param1,param2,param3) ,所以利用變個特性,我們就實現了上面的功能。
下面是我的完整代碼,方便大家學習瞭解。

$(‘#getMinMax‘).click(function () {       var arr = [1, 2, 3, 4, 5, 6, 7, 0.9, 11];       var min = Math.min.apply(null, arr);       var max = Math.max.apply(null, arr);       alert(‘min:‘ min ‘  max:‘ max);   });   $(‘#unite‘).click(function () {       var arrA = [‘1‘, ‘2‘, ‘3‘];       var arrB = [4, 5, 6];       Array.prototype.push.apply(arrA, arrB);       var str = ‘newArr:[‘;       for (var i = 0; i < arrA.length; i  ) {           str  = arrA[i]   ‘,‘;       }       str = str.substr(0, str.length - 1) ‘]‘;       alert(str);   });

  

js巧用apply方法實現數組最值以及合并

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.