0

请考虑以下代码:

    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

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

4

5 回答 5

2

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

利用:

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

反而

于 2013-06-08T06:26:17.967 回答
1
myarray.sort(function compareNumbers(a, b) {
return a - b;
});

会给你 [6, 30, 32],并且

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

会给你相反的

于 2013-06-08T06:29:41.410 回答
0

要对数字进行排序,请使用以下命令:

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

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

于 2013-06-08T06:30:58.773 回答
0

数组排序

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

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

numberArray.sort(compareNumbers)
于 2013-06-08T06:27:46.433 回答
0

对于数值数组,试试这个:

升序排序:

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

降序排序:

myarray.sort(function(a,b){return b-a});
于 2013-06-08T06:28:09.210 回答