在默认情况下,sort()方法会调用每个数组的toString()转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串。
exp:
var values=[0,1,5,10,15];
values.sort();
alert(values);//0,1,10,15,5
延伸1:sort(compare)的升序方法。
function compare(value,value2){
if(value1<value2)
{ return -1; }
else if(value1>value2)
{ return 1; }
else{ return 0; }
}
var values= [0,1,5,10,15];
values.sort(compare);
alert(values);//0,1,5,10,15
比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回0;如果第一个参数应该位于第二个之后则返回一个正数。
延伸2:sort(compare)的降序方法。
function compare(value,value2){
if(value1<value2)
{ return 1; }
else if(value1>value2)
{ return -1; }
else{ return 0; }
}
var values= [0,1,5,10,15];
values.sort(compare);
alert(values);//15,10,5,1,0
方法与第一种方法类似,只不过在compare比较函数,if语句中使return结果取反。