【JavaScript】接上sort()方法的使用场景(排序)

sort()是 JavaScript 数组的一个内置方法,用于对数组的元素进行排序。它可以在多种场景下使用,以下是一些常见的使用场景:

一、数字数组排序

当你有一个数字数组,并且想要按照升序或降序排列这些数字时,可以使用 sort() 方法。

let numbers = [5, 1, 9, 3, 7];  
numbers.sort(function(a, b) {  
    return a - b; // 升序排序  
    // return b - a; // 降序排序  
});  
console.log(numbers); // 输出: [1, 3, 5, 7, 9]

二、字符串数组排序

let fruits = ['banana', 'apple', 'cherry'];  
fruits.sort();  
console.log(fruits); // 输出: ['apple', 'banana', 'cherry']

三、对象数组排序

let users = [  
    { name: 'zhangsan', age: 25 },  
    { name: 'lisi', age: 20 },  
    { name: 'wangwu', age: 23 }  
];  
  
users.sort(function(a, b) {  
    return a.age - b.age; // 根据年龄升序排序  
});  
  
console.log(users);  
// 输出: [{ name: 'lisi', age: 20 }, { name: 'wangwu', age: 23 }, { name: 'zhangsan', age: 25 }]

四、自定义排序逻辑

sort() 方法接受一个可选的比较函数作为参数,这使得你可以定义自己的排序逻辑。

// 对下面同学的分数进行排序,当第一权重分数相同,按照第二权重分数排序
let arr = [
    {
        name: 'Tom',
        first: 99,
        second: 88,
    },
    {
        name: 'Jane',
        first: 99,
        second: 99,
    },
    {
        name: 'Maria',
        first: 100,
        second: 77,
    },
    {
        name: 'Sunny',
        first: 88,
        second: 100,
    },
]
const compare = (x, y) => {
    // 先比较第一权重分
    if (x.first < y.first) {
        return y.first - x.first || 1    //其实只要为正数就可以
    } else if (x.first > y.first) {
        return y.first - x.first || -1
    } else {
        // 第一权重分相等的时候
        if (x.second < y.second) {
            return 1
        } else if (x.second > y.second) {
            return -1
        }
    }
}
arr.sort(compare);
console.log(arr);
/*
[
  { name: 'Maria', first: 100, second: 77 },
  { name: 'Jane', first: 99, second: 99 },  
  { name: 'Tom', first: 99, second: 88 },   
  { name: 'Sunny', first: 88, second: 100 }          
]
注意:first相同的时候   second的顺序
*/ 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值