資料排序這塊應該是每個程式設計師都會遇到的,而這篇文章主要是介紹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()中引數必須是這個物件的屬性名稱,而你要比較的這些物件裡面,一定要有這個屬性名稱,否則會出錯。以上屬於個人總結,如果後期有什麼補充會再次釋出