jQuery對象數組排序


如何對下列對象數組排序,要將weekday相同的放在一塊,並按時間升序:

[
{"start":"14:01","end":"16:00","weekday":1}
{"start":"10:00","end":"12:00","weekday":0},
{"start":"14:01","end":"16:00","weekday":0},
{"start":"10:00","end":"12:00","weekday":1},
{"start":"12:01","end":"14:00","weekday":1},
{"start":"12:01","end":"14:00","weekday":0},
]

Jquery對排序提供了一個方法:sort()。但是這個只是針對string int這樣的原始類型的。對對象,對象數組不行。

對對象,對象數組我們可以使用sort()的自定義方法:

數組.sort( 

  function sortRule(a,b) {
    if(a.屬性 > b.屬性) return 1 交換位置

    if(a.屬性 < b.屬性) return -1 不要交換位置

    if(a.屬性 = b.屬性) return 0 不要交換位置
  }

)

代碼:對它進行兩次排序就OK了,先根據時間排序,在根據weekday進行排序。(但是反過來先根據weekday在根據時間排序就不行)

var d = [
            {"start":"10:00","end":"12:00","weekday":0},
            {"start":"12:01","end":"14:00","weekday":0},
            {"start":"12:01","end":"14:00","weekday":1},
            {"start":"10:00","end":"12:00","weekday":1},
            {"start":"14:01","end":"16:00","weekday":1},
            {"start":"14:01","end":"16:00","weekday":0}
         ] ;
               
     d.sort(function(a,b){
            if(a.start>b.start) return 1 ;
            if(a.start<b.start) return -1 ;
            return 0 ;
     }) ;
     d.sort(function(a,b){
            if(a.weekday>b.weekday) return 1 ;
            if(a.weekday<b.weekday) return -1 ;
            return 0 ;
     })

 


免責聲明!

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



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