vue 根據數組中某一項的值進行排序


vue 根據數組中某一項的值進行排序

1.排序方法

這里用到的是數組的sort方法,這個方法有一個需要注意的地方,就是不傳參數的話,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。這並不是我們想要的排序方法,所以必須要傳參。
sort方法的參數是一個函數,這個函數提供了一個比較方法,要比較兩個值,然后返回一個用於說明這兩個值的相對順序的數字。

  • 若a小於b,在排序后的數組中a應該出現在b之前,則返回一個小於0的值。
  • 若a等於b,則返回0。
  • 若a大於b,則返回一個大於0的值。
compare(key){
  return function(a,b){
     var val1 = a[key];
     var val2 = b[key];
     return val2 - val1;
    }
}

在代碼中,compare函數中的匿名函數就是這樣一個函數,但這個函數外面又嵌套了一層,這是因為需要根據數組中的某一項來排序,所以需要把這一項的key值傳進來。

2.調用函數:

//arrayObject是一個數組對象,例如[{tmp:1},{tmp:2},{tmp:3},{tmp:4},{tmp:5}]
this.arrayObject.sort(this.compare(key)) 
//key值為數組對象中要根據其排序的鍵值對的鍵,如arrayObject中的tmp,即
this.arrayObject.sort(this.compare('tmp')) 

最后

十分感謝原博客博主,原博客地址為:
https://segmentfault.com/a/1190000016199017


免責聲明!

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



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