2

これが私のコードスニペットです

  $(document).ready(function(){
        var mylist = [ "20","3","100","50"];
        mylist = mylist.sort();
        $("#mydiv").html(mylist.join(""));
    }); 

以下のように私のdivに印刷します

100
20
3
50

ただし、「20」、「3」、「100」、「50」などのデータを提供する場合は、適切な順序を指定します。

fifty
hundread
three
twenty

助けてください、私が欠けているものは??

ありがとう。

4

5 に答える 5

2

デフォルトの比較数学はアルファベット順を使用します。数値を並べ替える場合は、次を使用します。

arr.sort(function(a,b) {
    return a - b;
});
于 2013-02-23T16:13:09.770 に答える
2

Array.sort()デフォルトでは、値をアルファベット順にソートします。このメソッドは、オプションのパラメーターである比較関数とともに使用することもできます。

数値を並べ替えるには、次を使用します。

var numbers = [4, 2, 5, 10, 3];
numbers.sort(function(a, b) {
    return a - b;
});

// numbers -> [2, 3, 4, 5, 10]
于 2013-02-23T16:17:50.010 に答える
0

これを試して:

var sortnumerically = function(a,b){
    if (a<b) return -1;
    else if (a>b) return 1; 
    else= return 0;
}
var mylist = [ 20,3,100,50];
mylist = mylist.sort(sortnumerically);
$("#mydiv").html(mylist.join(","));

さて、sortnumericallyコンパレータ関数を説明します。簡単に言えば、2つの入力a、b:おそらく配列からの要素を受け入れます。abが1を返す場合(これはコンパレータが行うことになっていることです)。

http://jsfiddle.net/Lmzua/1/

于 2013-02-23T16:25:12.170 に答える
0

配列値から引用符を削除し、以下の追加関数を使用して昇順を取得しますMylist = Mylist.sort(function(a、b){return ab});

于 2013-02-23T16:33:52.373 に答える
-1

数値を文字列リテラルとして定義したため、jsはそれらを文字列としてソートします。ソートが必要に応じて機能するためには、数値リテラルとして定義する必要があります。[ 20, 3, 100, 50]

于 2013-02-23T16:16:10.947 に答える