数组排序与乱序

一、规则排序

sort()方法在默认情况下按照升序排列数组项---即从小到大排序,为了实现排序,sort()方法会调用每一项的toString()转型方法,来比较得到的字符串,以确定如何排序。
即使数组中每一项都是数值sort()比较的也是字符串

var values = [0, 1, 5, 10, 15];
values.sort();
alert(values);     //0,1,10,15,5

所以想要比较数值的时候,单单使用sort()方法是不准确的,我们需要一个比较函数作为sort()的参数。

var values = [0, 1, 5, 10, 15];
values.sort(function(prev,next){
  return prev-next;
});
alert(values);    // 0,1,5,10,15

想要反转数组的顺序只需要执行reserve()方法即可。

乱序

乱序的话需要对sort()中的比较函数返回值做一些操作,让返回值随即为正(升序)、负(降序);

var values = [0, 1, 5, 10, 15];
values.sort(function(prev,next){
    //因为Math.random产生的数在0-1之间
    //所以0.5两边的概率是相等的
    //大于0.5时为升序,小于0.5时为降序
  return Math.random() - 0.5;
});
alert(values);

你可能感兴趣的:(数组排序与乱序)