JS中的数组排序函数:sort()与reverse()
一:sort()函数排序
常见的排序有冒泡排序,而js中直接使用函数sort即可:具体原理及解释如下:
var array = [1, 12, 21, 2];
array.sort(function(a,b){
return b-a;
});
array = [21, 12, 2, 1];
理解:
1. 对于function(a,b):主要根据返回值的正负来确定a,b的位置。
如果返回值小于0,则sort()函数自动将a排列到 b之前;
如果返回值等于0,则a与b的相对位置不变;
如果返回值大于0,则sort()函数自动将a排列到b之后;
2. 对于此例子的具体应用:
若b>a,则返回值大于0,此时按规则a排在b之后:b,a;
若b=a,则不变;
若b<a,则返回值小于0,此时按规则a排在b之前:a,b;
所以次例子是将数组进行从小到大排列。
二:reverve()函数
reverse()函数相比来说简单很多,直接将数组进行逆转:
var array = [1,2,3,4,5,6,7];
var newArray = [];
newArray = array.reverse();
newArray=[7,6,5,4,3,2,1]
比较:
sort()函数处理后没有返回值,a.sort()改变的是数组a的值,也即原数组,而b.reverse()出来后b数组不便,会返回一个新的数组,且需要将其存进一个新数组中