今天在复习的过程中,发现自己对数组的重排序方法sort()一直存在一个误区,重新捋顺,在此记录。。。
数组中存在两个可以直接用来重排序的方法:reverse()和sort(),reverse()方法就是反转数组项的顺序。在默认情况下,sort()方法按升序排列数组项,在这个过程中sort方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,然后确定排序。之前一直没有注意到这一点,一直以为调用sort()方法过后会直接对一个数组进行正确排序,其实并不是这样,而是对得到的字符串进行比较,自己对它的理解一直都是错误的,今天终于清晰了。。。
sort()方法可以接受一个比较函数作为参数,以便我们制定哪个值位于哪个值的前面。下面是一个简单的比较函数。
function compare(a,b){
if(a<b){
return -1;
}else if(a>b){
return 1;
}else {
return 0;
}
}
将其传递给sort方法即可。