js中sort總結

hope93發表於2017-08-21

資料排序這塊應該是每個程式設計師都會遇到的,而這篇文章主要是介紹js中sort排序如何使用得當,既然有現成的封裝的方法就用現成的,自己稍加修改就能完成,不需要再重新自己重頭到尾寫個函式,當然如果大家有這個興趣也可以自己寫啦。

1.字母排序

sort預設的排序方式為字母排序,根據二十六個字母依次排列,單詞之間比較,則先比較第一個字母,如果第一個字母相同則比較第二個字母,以此類推。

  // 1.字母排序(sort預設排序)
   var arr = ["za","zb","a","b","xc","xa"];
   arr.sort();
   console.log(arr);
  // 執行結果:["a", "b", "xa", "xc", "za", "zb"]

2.sort數字排序

sort()中引數可以是方法函式,可以升序和降序輸出結果。

 //2.sort數字排序
  var array = [100,10,50,800,320,34,53];
    array.sort(function(a,b){
        //a-b升序,b-a降序
        return b-a;
    });
    console.log(array);
  //執行結果:[800, 320, 100, 53, 50, 34, 10]

注意:其中a,b都是表示這個陣列裡面的元素,如果是a-b則表示升序,如果是b-a則表示降序。

3.陣列物件排序

最重要的還是這個物件屬性排序,當後臺給我們前端很多資料並且沒有排序時,我們一般都是要重新進行排序,而後臺給的資料往往是好幾層,不會像前面那種簡單的就一個陣列,這個時候就要用sort中物件屬性排序了

  // 3.物件屬性排序
    var obj = [
        {name:"lucy", num:400},
        {name:"nancy", num:110},
        {name:"maria", num:200}
    ];
   obj.sort(compare("num"));
   console.log(obj);

   //陣列物件屬性值排序
   function compare(property){
       return function(a,b){
           //value1 - value2升序
           //value2 - value1降序
           var value1 = a[property];
           var value2 = b[property];
           return value1 - value2;//升序
       }
   }

執行結果:
[
{name:”nancy”, num:110},
{name:”maria”, num:200},
{name:”lucy”, num:400}
]
注意:compare()中引數必須是這個物件的屬性名稱,而你要比較的這些物件裡面,一定要有這個屬性名稱,否則會出錯。以上屬於個人總結,如果後期有什麼補充會再次釋出

相關文章