JavaScript数组sort()排序函数详细解析

定义和用法

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},]

结尾

万变不离其宗,理解和掌握以上这些排序方法,灵活使用起来,基本不会遇到什么其他问题。

至此,完毕。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值