概要
在js中的sort()方法,如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更准确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。而且。arry.sort()默认是升序排序。
其他标准排序
js中sort()方法要使用其他标准进行排序的话,则需要提供比较函数。该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
简单点:比较函数两个参数a和b,返回a-b升序,返回b-a降序
var arr=[4,8,1,9,6,3]
arr.sort(function(a,b){
return a-b;//升序排序
});
//输出结果为1,3,4,6,8,9
值得注意的是:如果比较的是字符串,则按照首字母的字符编码进行排序。