JavaScriptにおけるsortのソート問題
3640 ワード
sort方法:要素が順序付けされているarrayオブジェクトを返します.アラヨbj必須オプションです.任意のarrayオブジェクト sortfunctionオプションがあります.は、関数の並べ替えを決定するための名前です.このパラメータが省略されると、ASCII文字順に要素が昇順に配列されます. ソト関数は、arrayオブジェクトを適切に並べ替え、実行中に新たなarrayオブジェクトを作成しません.【説明】ソト関数は既存の配列を並べ替えて返します.並べ替え後の元の配列オブジェクトです.次に例を書きます.
デフォルトでは、ソト関数はASCII文字で並べ替えられています.
実際に.コンピュータに表示されているのは私たちが入力した数値ではなく、ここにコードがあります.もし私たちがパソコンにaを入力すると、パソコンに97と表示され、97はバイナリに変換されます.よく使われるASCII文字の対応-a-97-A——65-0--48-1——49は上から类推して、2はASCIIの中で49で、bは98で、Bは66です.
上記の例に戻ると、なぜ18、41、5、7が出力されますか?元々はASCII文字の並べ替えで、対応は比較です.18と5を比べると、実は1と5と比べて、5は一桁しかないので、一位しか比べられません.1<5ですから、間違った答えが出ました.問題はどう解決しますか?
上記で述べたように、パラメータを省略すると、デフォルトはASCII文字で並べ替えられます.つまり、パラメータがあるということは、デフォルトではASCII文字で並べ替えられていません.
次にパラメータのある例を書きます.
ソートは順序付けという関数をパラメータとして受け入れました.順序付けという関数によって並べ替えられます.ASCII文字コードによって並べ替えられなくなりました.
パラメータがあったらどうやって並べ替えますか?【説明】まず、5と41をmとnに値を伝えます.5と41を比較すると、この時、5は41より小さいので、-1に戻ります.sortはこの戻り値に基づいて、負の数は前の数が後の数より小さいと思っています.
上のほうが分かりやすいです.次の中に簡単な並べ替えを書いてください.
並べ替えの問題はここまで紹介します.私の文章があなたの役に立ちますように.
arrayobj.sort(sortfunction)
<script>
var array[1,4,5,7]
a.sort();
alert(a);
script>
出力結果:1、4、5、7はみんなが見られます.出力の結果はちょうど小さい時から大きい順に並んでいます.次にデータを変えます.<script>
var array[5,41,7,18]
a.sort();
alert(a);
script>
出力結果:18,41,5,7の結果は金がないことを示しています.なぜ間違えましたか?デフォルトでは、ソト関数はASCII文字で並べ替えられています.
実際に.コンピュータに表示されているのは私たちが入力した数値ではなく、ここにコードがあります.もし私たちがパソコンにaを入力すると、パソコンに97と表示され、97はバイナリに変換されます.よく使われるASCII文字の対応-a-97-A——65-0--48-1——49は上から类推して、2はASCIIの中で49で、bは98で、Bは66です.
上記の例に戻ると、なぜ18、41、5、7が出力されますか?元々はASCII文字の並べ替えで、対応は比較です.18と5を比べると、実は1と5と比べて、5は一桁しかないので、一位しか比べられません.1<5ですから、間違った答えが出ました.問題はどう解決しますか?
上記で述べたように、パラメータを省略すると、デフォルトはASCII文字で並べ替えられます.つまり、パラメータがあるということは、デフォルトではASCII文字で並べ替えられていません.
次にパラメータのある例を書きます.
<script>
sort a=[5,41,7,18];
function paixu(m,n)
{
if(m>n)
return 1;
else if(mreturn -1;
else
return 0;
}
a.sort(paixu);
alert(a);
script>
表示結果:5,7,18,41ソートは順序付けという関数をパラメータとして受け入れました.順序付けという関数によって並べ替えられます.ASCII文字コードによって並べ替えられなくなりました.
パラメータがあったらどうやって並べ替えますか?【説明】まず、5と41をmとnに値を伝えます.5と41を比較すると、この時、5は41より小さいので、-1に戻ります.sortはこの戻り値に基づいて、負の数は前の数が後の数より小さいと思っています.
上のほうが分かりやすいです.次の中に簡単な並べ替えを書いてください.
<script>
sort a=[5,41,7,18];
function paixu(m,n)
{
return m-n;
}
a.sort(paixu);
alert(a);
script>
出力結果:5、7、18、41並べ替えの問題はここまで紹介します.私の文章があなたの役に立ちますように.