jsでsort()を使用する方法

小云云
小云云オリジナル
2018-03-13 17:15:092170ブラウズ

このメソッドがパラメータなしで呼び出された場合、配列内の要素はアルファベット順、より正確には文字エンコード順に並べ替えられます。これを実現するには、まず配列の要素を比較のために (必要に応じて) 文字列に変換する必要があります。

array.sort() メソッドはデフォルトで昇順になります。他の基準に従って並べ替える場合は、この関数は 2 つの値を比較し、相対的な順序を示す数値を返す必要があります。 2 つの値。比較関数には 2 つのパラメーター a と b が必要で、その戻り値は次のとおりです:

  • a が b より小さい場合、a はソートされた配列内で b より前に表示され、0 より小さい値を返します。

  • a が b に等しい場合、0 を返します。

  • a が b より大きい場合、0 より大きい値を返します。

簡単: 関数aとbの2つのパラメータを比較し、a-bを昇順で返し、b-aを降順で返す

以下は、いくつかの例を通して理解されます

通常の配列の昇順

var arr = [4,3,6,5,7,2,1];
arr.sort();
console.log(arr);//输出结果[1,2,3,4,5,6,7]

通常のデータの降順

var arr = [4,3,6,5,7,2,1];
arr.sort();
arr.sort(function(a,b){    return b-a;
});
console.log(arr);//输出结果[7,6,5,4,3,2,1]

オブジェクト配列のソート

var arr= [ 
    { 'sortNo': 2},
    { 'sortNo': 1},
    { 'sortNo': 5},
    { 'sortNo': 6},
    { 'sortNo': 7},
    { 'sortNo': 3},
    { 'sortNo': 9},
    { 'sortNo': 4},
    { 'sortNo': 0}
];
arr.sort(function(a, b){        return a.sortNo - b.sortNo;
});
console.log(arr);//输出结果//{ 'sortNo': 2}//{ 'sortNo': 1}//{ 'sortNo': 5}//{ 'sortNo': 6}//{ 'sortNo': 7}//{ 'sortNo': 3}//{ 'sortNo': 9}//{ 'sortNo': 4}//{ 'sortNo': 0}

オブジェクト配列の複数条件ソート

(この例では、sortNoが同じ場合、大きい順にsortNo2を押します)

var arr= [ 
    { 'sortNo': 2, 'sortNo2': 3},
    { 'sortNo': 1, 'sortNo2': 3},
    { 'sortNo': 5, 'sortNo2': 3},
    { 'sortNo': 6, 'sortNo2': 3},
    { 'sortNo': 7, 'sortNo2': 3},
    { 'sortNo': 3, 'sortNo2': 4},
    { 'sortNo': 3, 'sortNo2': 2},
    { 'sortNo': 3, 'sortNo2': 1},
    { 'sortNo': 3, 'sortNo2': 3},
    { 'sortNo': 8, 'sortNo2': 3},
    { 'sortNo': 4, 'sortNo2': 1},
    { 'sortNo': 4, 'sortNo2': 2}
];
arr.sort(function(a, b){    if (a.sortNo === b.sortNo) {            return b.sortNo2 - a.sortNo2;
    } else {            return a.sortNo - b.sortNo;
    }
});
console.log(arr); 

//输出结果//{ 'sortNo': 1, 'sortNo2': 3}//{ 'sortNo': 2, 'sortNo2': 3}//{ 'sortNo': 3, 'sortNo2': 4}//{ 'sortNo': 3, 'sortNo2': 3}//{ 'sortNo': 3, 'sortNo2': 2}//{ 'sortNo': 3, 'sortNo2': 1}//{ 'sortNo': 4, 'sortNo2': 2}//{ 'sortNo': 4, 'sortNo2': 1}//{ 'sortNo': 5, 'sortNo2': 3}//{ 'sortNo': 6, 'sortNo2': 3}//{ 'sortNo': 7, 'sortNo2': 3}//{ 'sortNo': 8, 'sortNo2': 3}

関連推奨事項:

例の詳細な説明JavaScript 配列の並べ替え reverse() メソッドと sort() メソッド

JavaScript での関数 sort() の仕組み

配列の要素を並べ替える JavaScript メソッド sort()

以上がjsでsort()を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。