欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript中的sort()方法

程序员文章站 2022-07-11 14:59:23
...

sort()函数

  • 用于对数组的元素进行排序,并返回数组

1. 没有参数时,按照字符编码的顺序进行排序

var arr = ["aa", "bb", "bb", "oo", 99, 55, 66, 77];

var newArr = arr.sort();

console.log(newArr); // [55, 66, 77, 99, 'aa', 'bb', 'bb', 'oo']

2. 有参数时,按照升序、降序来排序

(1) 实现升序,从小到大从大到小

var arr = [99, 55, 66, 77];

var newArr = arr.sort(function (a, b) {
    return (a - b);
});

console.log(newArr); // [55, 66, 77, 99]

(2) 实现降序,从大到小

var arr = [99, 55, 66, 77];

var newArr = arr.sort(function (a, b) {
    return (b - a);
});

console.log(newArr); // [99, 77, 66, 55]

(3) 根据数组中的对象的某个属性值排序

// 创建对象
function getStu(name, age, score) {
    var stu = {};
    stu.name = name;
    stu.age = age;
    stu.score = score;
    return stu;
}
var stu1 = getStu("Tom", 29, 98);
var stu2 = getStu("Jack", 18, 92);
var stu3 = getStu("Jarry", 12, 77);

// 将对象加入数组中
var stus = [stu1, stu2, stu3];

// 对数组进行排序
var newArr = stus.sort(function (stu1, stu2) {
    return stu1.score - stu2.score;
});

// 遍历数组
console.log(newArr);

(4) 根据对象的多个属性进行排序

// 创建对象
function getStu(name, age, score) {
    var stu = {};
    stu.name = name;
    stu.age = age;
    stu.score = score;
    return stu;
}
var stu1 = getStu("Tom", 29, 98);
var stu2 = getStu("Jack", 18, 92);
var stu3 = getStu("Jarry", 12, 92);

// 将对象加入数组中
var stus = [stu1, stu2, stu3];

// 对数组进行排序
var newArr = stus.sort(function (stu1, stu2) {
    if (stu1.score != stu2.score) {
        return stu1.score - stu2.score;
    }
    else {
        return stu2.age - stu1.age;
    }
});

// 遍历数组
console.log(newArr);