javascript的排序功能无法正常工作

时间:2013-06-08 06:21:35

标签: javascript

请考虑以下代码:

    myarray = new Array();
    myarray[0] = parseInt("30");
    myarray[1] = parseInt("32");
    myarray[2] = parseInt("6");
    myarray.sort();
    document.write (myarray[0] + "," + myarray[1] + "," + myarray[2] + "<br/>");
    myarray.reverse();
    document.write (myarray[0] + "," + myarray[1] + "," + myarray[2]); 

上面的代码将输出如下:

  30,32,6
  6,32,30 

但我想要这样:

6,30,32
32,30,6

我怎样才能做到这一点?请帮忙。提前谢谢。

5 个答案:

答案 0 :(得分:2)

默认情况下,按字母顺序排序。

使用:

myarray.sort(function(a,b){return a-b});

相反

答案 1 :(得分:1)

myarray.sort(function compareNumbers(a, b) {
return a - b;
});

会给你[6,30,32]和

myarray.sort(function compareNumbers(a, b) {
return b -a;
});

会给你反向的

答案 2 :(得分:0)

<强>的Array.sort

如果未提供compareFunction,则会通过将元素转换为字符串并按字典(“词典”或“电话簿”,而不是数字)顺序比较字符串来对元素进行排序。

function compareNumbers(a, b) {
  return a - b;
}

numberArray.sort(compareNumbers)

答案 3 :(得分:0)

对于数值数组,请尝试:

升序排序:

myarray.sort(function(a,b){return a-b});

降序排序:

myarray.sort(function(a,b){return b-a});

答案 4 :(得分:0)

要对数字进行排序,请使用以下内容:

myarray.sort(function(a,b){return a-b});

有关排序字母/数字的更多详细信息,请参阅此处: http://www.w3schools.com/jsref/jsref_sort.asp