数组中的排序使用的是sort方法,示例代码:
sort方法默认是按照ASCII字符升序排序的
注:ACSII码对照表
http://www.51hei.com/mcu/4342.html
var a=[1,50,25,60,55];//定义一个数组
a.sort();
alert(a);
效果图:
例子2:
var b=['ab','ada','acz'];
b.sort();
alert(b);
效果图:
PS:先比较第一个字符 ‘ab’和’acz’比较 第一个字符a相同,然后比较第二个字符c比b大,以此类推。
按照数值的大小排序:
var c=[5,41,7,18];
function paixu(m,n) {
if (m>n)
return 1;
else if(m<n)
return -1;
else
return 0;
}
c.sort(paixu)
alert(c);
sort()方法里是可以携带参数的,我们定义一个排序的函数。
效果图:
上面的代码我们还可以简化一下;
var c=[5,41,7,18];
function paixu(m,n) {
return m-n;
}
c.sort(paixu)
alert(c);
结果是一样的
说明:
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数
a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
个人微信公众号:
如果我的文章对您有帮助,微信支付宝打赏: