Array.prototype.sort()
sort() 方法用於對陣列的元素進行排序。如果呼叫該方法時沒有使用引數,將按字母順序(Ascall編碼)對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字串(如有必要),以便進行比較。如果要想進行升序或是降序排序的話,要提供比較函式。
- 排序順序可以是字母或數字,並按升序或降序。
- 預設排序順序為按字母升序。
語法:array.sort(sortfunction)
引數 | 描述 |
---|---|
sortfunction | 可選。規定排序順序。必須是函式。 |
- 關於升序和降序的條件
當 a>b 時,
a - b > 0 ,排序結果 ===> b,a (升序)
b - a < 0 ,排序結果 ===> a,b (降序)
當 b>a 時,
a - b < 0 ,排序結果 ===> a,b (升序)
b - a > 0 ,排序結果 ===> b,a (降序)
當 a=b 時,
a - b = b - a =0 , 排序結果 ===> 保持不變
升序
// 升序
var points = [40,100,1,5,25,10];
let res = points.sort(function(a,b){
return a-b //升序
});
console.log(res); [ 1, 5, 10, 25, 40, 100 ]
降序
// 降序
var points = [40,100,1,5,25,10];
let result = points.sort(function(a,b){
return b - a
});
console.log(result); //[ 100, 40, 25, 10, 5, 1 ]
按字母升序
//按字母升序
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
console.log(fruits) //[ 'Apple', 'Banana', 'Mango', 'Orange' ]