默认情况下,sort 方法是按照ASCII码来进行排序的。对于JavaScript数组的sort方法来说,它会先将待排序的内容转换为字符串(调用toString()方法),按照字符串的先后顺序进行排序。例如,[1,12,13,21,2]经过sort方法排序后的结果为[1,12,13,2,21],而不是[1,2,12,13,21]。
如果想要输出想要的结果,需要用到下面的代码:
var arr = [1,12,13,21,2]; console.log(arr.sort()); //Array [ 1, 12, 13, 2, 21 ]
arr.sort(
function
(num1,num2){
var
temp1 = parseInt(num1);
var
temp2 = parseInt(num2);
if
(temp1 < temp2) {
return
-1;
}
else
if
(temp1 == temp2) {
return
0;
}
else
{
return
1;
}
});
console.log(arr); //Array [ 1, 2, 12, 13, 21 ]