定义和用法
sort() 方法用于对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。请注意,数组在原数组上进行排序,不生成副本。
基础用法
1、字符/字符串排序
//单字符排序,不可大小写混用
let letter= ['B', 'C', 'A'];
letter.sort();
console.log(letter);//["A", "B", "C"]
//字符串排序
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
console.log(fruits);//["Apple", "Banana", "Mango", "Orange"]
2、数字排序
//string类型数字
let num = ['5', '8', '1'];
num.sort();
console.log(num);//["1", "5", "8"]
//number类型数字
let num = [5, 8, 1];
num.sort();
console.log(num);//[1, 5, 8]
进阶用法
自定义比较器
如果,你想让数组按从大到小的方式进行排序,那么你需要往sort()函数中传递一个参数 sortfunction,可选。规定排序顺序。该参数必须是函数。
1、从小到大排序
let num= [40, 100, 1, 5, 25, 10];
num.sort(function(a,b){
return a - b;
});
console.log(num);//[1, 5, 10, 25, 40, 100]
2、从大到小排序
let num= [40, 100, 1, 5, 25, 10];
num.sort(function(a,b){
return b - a;
});
console.log(num);//[100, 40, 25, 10, 5, 1]
3、打乱数组排序
let num= [1, 10, 100, 666, 888, 1000];
num.sort(function(a,b){
if(Math.random() < 0.5){
return a - b;
}else{
return b - a;
}
});
console.log(num);//[1, 888, 10, 100, 666, 1000] 每次运行都会不一样
使用场景:1、彩色球随机 2、棋牌游戏的洗牌
4、对象某一属性排序
//按分数从低到高进行排序
let studentList = [
{name: 'jack', score: 85},
{name: 'blue', score: 80},
{name: 'rose', score: 90},
];
studentList.sort(function(student1, student2){
return student1.score - student2.score;
});
console.log(studentList);
//[{name: 'blue', score: 80}, {name: 'jack', score: 85}, {name: 'rose', score: 90},]
结尾
万变不离其宗,理解和掌握以上这些排序方法,灵活使用起来,基本不会遇到什么其他问题。
至此,完毕。