2019独角兽企业重金招聘Python工程师标准>>>
var num = [1,10,13,5,9];
num.sort();
alert(num.toString()); //错误的排序1,10,13,5,9
num.sort(compare);
alert(num.toString()); //正确的排序13,10,9,5,1
//比较函数
function compare(value1,value2){
if(value1 == value2) {
return 0;
}
if(value1 > value2) {
return -1;
}
if(value1 < value2) {
return 1;
}
}
说明:数组排序sort本身会对数组每一项调用toSring()方法,所以比较数字时,数组中每一项数字都会被转化为为字符串,sort()根据字符串来排序,所以会出现13比5小的情况,正确的做法是使用一个比较函数做为参数
sort()返回值是经过排序后的数组