一、规则排序
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);