JavaScript学習ノート13:高次関数-sort
4201 ワード
JavaScript教程転送ゲート
ソートアルゴリズム
順序付けのコアは、2つの要素のサイズを比較することであり、通常は、2つの要素
JavaScriptの
ソートアルゴリズム
順序付けのコアは、2つの要素のサイズを比較することであり、通常は、2つの要素
x
およびy
について、x < y
と考えると、-1
に戻り、x == y
と考えると0
に戻り、x > y
と考えると1
に戻る.JavaScriptの
Array
のsort()
の方法は並べ替えのためのものですが、並べ替えの結果はびっくりするかもしれません.// :
['Google', 'Apple', 'Microsoft'].sort(); // ['Apple', 'Google', 'Microsoft'];
// apple :
['Google', 'apple', 'Microsoft'].sort(); // ['Google', 'Microsoft", 'apple'],apple , ASCII , a ASCII
// :
[10, 20, 1, 2].sort(); // [1, 10, 2, 20],Array sort() String , '10' '2' , '1' '2' ASCII
もしsort()
方法のデフォルトの並べ替え規則が分からないならば、直接数字に対して並べ替えて、絶対に穴の中に入れます!正しいやり方は:var arr = [10, 20, 1, 2];
arr.sort(function (x, y) {
if (x < y) {
return -1;
}
if (x > y) {
return 1;
}
return 0;
}); // [1, 2, 10, 20]
大文字と小文字の比較アルゴリズムを無視します.var arr = ['Google', 'apple', 'Microsoft'];
arr.sort(function (s1, s2) {
x1 = s1.toUpperCase();
x2 = s2.toUpperCase();
if (x1 < x2) {
return -1;
}
if (x1 > x2) {
return 1;
}
return 0;
}); // ['apple', 'Google', 'Microsoft']
sort()
方法は、Array
を直接修正し、その結果は、現在のArray
であることに留意されたい.var a1 = ['B', 'A', 'C'];
var a2 = a1.sort();
a1; // ['A', 'B', 'C']
a2; // ['A', 'B', 'C']
a1 === a2; // true, a1 a2