之前介绍过三种排序算法,可以实现数组元素的排序,相对来说比较麻烦。而数组本身其实就提供了排序函数,本文就数组排序函数sort的使用进行了简单的介绍。
1.sort不带参数
不带参数的sort,默认升序排列,但并不是以简单的数学大小作为比较依据。如图所示,sort会先排列数字和数字字符,而后排列大写英文字符,最后排列小写字符。若要进行降序排列,需要利用reverse函数进行反转。
// 数组的排序操作(默认升序)
var num = [5, 4, 30, 2, 1]
num.sort()
console.log(num);
num.reverse();
console.log(num);
var num2 = [3, '2', 1, 'A', 'b', 'E', 40, '8', 'f', 22, '40', '4', '23', '1']
num2.sort()
console.log(num2);
2.sort带参数
从上面的情况可以看出,若单纯利用sort进行排序,可能会得到‘“错误”的结果。那么该如何真正按照数字的大小进行排序呢?下面介绍两种方法,分别对数组进行升序和降序排列。
var n1 = [1, 2, 22, 3, 55]
n1.sort(function(a, b) {
return a - b
}) //升序
console.log(n1);
var n2 = [1, 2, 22, 3, 55]
n2.sort(function(a, b) {
return b - a
}) //降序
console.log(n2);