因为在js中数组的sort方法是根据元素的unicode值来排序,所以传统的数字大小排序sort方法并不能实现,因此我们可以使用回调函数来进行sort方法的排序。
回调函数中需要定义两个形参,浏览器会分别使用数组中的元素 作为实参去调用回调函数,浏览器会根据回调函数的返回值来决定元素的顺序。
- 如果返回一个大于0的数,则元素会交换位置。
- 如果返回一个小于0的数,则元素位置不变。
- 如果返回一个0,则认为两个元素相等,也不交换位置。
所以由以上得出:
如果需要升序排列,则返回a-b,
如果需要降序排列,则返回b-a。
升序排列:
arr = [5,4,2,1,3,7,8,6];
arr.sort(function(a,b){
return a-b;
});
降序排列:
arr = [5,4,2,1,3,7,8,6];
arr.sort(function(a,b){
return b-a;
});