js中的數組對象排序(方法sort()詳細介紹)


 

 定義和用法

 

    sort() 方法用於對數組的元素進行排序。

 語法

   arrayObject.sort(sortby)

  參數sortby:可選。規定排序順序。必須是函數。

  返回值

  對數組的引用。請注意,數組在原數組上進行排序,不生成副本。

 

普通數組排序:

   js中用方法sort()為數組排序。sort()方法有一個可選參數,是用來確定元素順序的函數。如果這個參數被省略,那么數組中的元素將按照ASCII字符順序進行排序。如:

字母A、B的ASCII值分別為65、66,而a、b的值分別為97、98,所以上面輸出的結果是 ["A", "B", "a", "b"] 

如果一個數組元素是數字,此時還是用sort()為數組排序,先看看效果如何:

怎么沒有起到效果(按大小排序),其實,sort方法會調用每個數組項的toString()方法,得到字符串,然后再對得到的字符串進行排序。雖然數值15比3大,但在進行字符串比較時"15"則排在"3"前面(ASCII字符順序)。顯然,這種結果不是我們想要的,這時,sort()方法的參數就起到了作用,我們把這個參數叫做比較函數。

比較函數接收兩個參數,如果第一個參數應該位於第二個之前則返回一個負數,如果兩個參數相等則返回0,如果第一個參數應該位於第二個之后則返回一個正數。

 數組對象排序:

  數組項是對象,需要根據數組項的某個屬性對數組進行排序,要怎么辦呢?其實和前面的比較函數也差不多

下面這個是我項目的實例:

此時想PX字段大小排序,我是這樣做的:

sort()函數的應用,JS 中打亂數組

JS中,要打亂數組有很多方法,網上流傳一個國外人寫的方法,我認為是最精簡的了(下面是項目里應用的例子,登錄界面畫H5lock):

function randomsort(a, b) {
return Math.random()>.5 ? -1 : 1;  //用Math.random()函數生成0~1之間的隨機數與0.5比較,返回-1或1
}
this.number_arr = [0,1,2,3,4,5,6,7,8,9];
this.number_random_arr = this.number_arr.sort(randomsort);

 刷新后利用自動排序實現      刷新后利用自動排序實現 

 



 

 

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM