sort()函数来对数组进行排序?
sort()函数是JavaScript中数组操作中的一个非常有用的函数。该函数可以将数组中的元素按照定义好的规则排序。在本篇文章中,我们将会深入探讨sort()函数的用法以及它在JavaScript中的一些应用。
sort()函数基础用法
sort()函数适用于任何JavaScript数组,它可以按照指定的排序方法对数组中的元素进行排序。其基础用法非常简单:
array.sort()
在默认情况下,sort()函数将按照Unicode编码的顺序对元素进行排序。这意味着,数字和字母将以它们的ASCII码排序,如下所示:
var myArray = [50, 3, 1, 9, 100];
myArray.sort();
// 现在 myArray 为 [1, 100, 3, 50, 9]
在这种情况下,sort()函数将会将数组中的元素按照1, 100, 3, 50, 9的顺序进行排序,这显然不是我们所希望的结果。为了让sort()函数按照数字的大小顺序进行排序,我们应该使用以下语法:
array.sort(function(a, b){return a - b});
在这种情况下,sort()函数将按照从小到大的顺序排序。如果想要按照从大到小的顺序排序,则应该使用以下语法:
array.sort(function(a, b){return b - a});
sort()函数高级应用
在实际应用中,sort()函数往往需要使用一些高级的技巧。以下是一些值得一试的高级应用:
1.用sort()函数按照对象的指定属性进行排序
在JavaScript中,我们可以使用对象的属性来指定sort()函数的排序方法。例如,我们有一个包含学生成绩的对象数组,并且希望根据学生成绩按照从高到低的顺序排序:
var students = [
{ name: 'John', score: 80 },
{ name: 'Bob', score: 60 },
{ name: 'Alice', score: 70 }
];
students.sort(function(a, b) {
return b.score - a.score;
});
// 现在 students 为 [{ name:'John', score:80 }, { name:'Alice', score:70 }, { name:'Bob', score:60 }]
在这种情况下,我们使用了对象的score属性来指定排序方法。
2.用sort()函数进行多重排序
在有些情况下,我们希望使用多个标准来对一个数组进行排序。例如,我们有一个包含多个属性的对象数组,并希望首先按照年龄进行排序,如果年龄相等则按照姓名进行排序:
var people = [
{name: "John", age: 21},
{name: "Peter", age: 45},
{name: "Mike", age: 21},
{name: "Anna", age: 23},
{name: "Tina", age: 35}
];
people.sort(function(a, b) {
if(a.age != b.age) {
return a.age - b.age;
} else {
var x = a.name.toLowerCase(), y = b.name.toLowerCase();
return x < y ? -1 : x > y ? 1 : 0;
}
});
// 现在 people 为 [{name:"John", age:21}, {name:"Mike", age:21}, {name:"Anna", age:23}, {name:"Tina", age:35}, {name:"Peter", age:45}]
在这种情况下,我们首先按照年龄进行排序,如果年龄相同则按照姓名进行排序。
3.用sort()函数对数组去重
除了排序外,sort()函数还可以用来对数组进行去重。以下是一种基于sort()函数的去重方法:
var myArray = [1, 4, 2, 5, 4, 3, 1, 2];
myArray.sort();
for(var i = 0; i < myArray.length; i++) {
if(myArray[i] == myArray[i+1]) {
myArray.splice(i, 1);
i--;
}
}
// 现在 myArray 为 [1, 2, 3, 4, 5]
在这种情况下,我们首先使用sort()函数将数组中的元素按照默认的Unicode编码顺序进行排序,然后通过遍历数组的元素,逐一进行比对和去重。如果数组元素和下一个元素是相同的,则在数组中删除一个元素。
总结
sort()函数是一个非常有用的JavaScript函数,可以用来对数组进行排序和去重。如果您使用的是JavaScript中的数组,那么sort()函数将会是您常用的函数之一。在实际应用中,我们可以使用sort()函数的高级用法,来使sort()函数更加灵活和高效。
