sort() メソッドは、配列の要素をソートするために使用されます。ヘッダー ファイルのアルゴリズムに含まれています
文法
arrayObject.sort(sortby)
参数 | 描述 |
---|---|
sortby | 可选。规定排序顺序。必须是函数。 |
戻り値
配列への参照。配列は元の配列に基づいてソートされ、コピーは作成されないことに注意してください。
1. デフォルトの状況
デフォルトでは、sort() メソッドは配列項目を昇順に並べ替えます。並べ替えを行うために、sort() メソッドは各配列項目の toString() 変換メソッドを呼び出し、結果の文字列を比較して並べ替え方法を決定します。以下のように:
var values = ["orange","apple","banana"]; values.sort(); console.log(values);//结果["apple", "banana", "orange"]
ただし、配列内の各項目が数値であっても、sort() メソッドは次のように文字列を比較します。
var values = [,,,,]; values.sort(); console.log(values);//结果[, , , , ]
2. 値を並べ替えます
sort() メソッドは比較関数をパラメータとして受け取ることができます。比較関数は 2 つのパラメーターを受け取ります。最初のパラメーターが 2 番目のパラメーターの前にある場合は、負の数を返します。2 つのパラメーターが等しい場合は、0 を返します。最初のパラメーターが 2 番目のパラメーターの後である場合は、値を返します。正の数。
function compare(a, b){ return (a - b); }//按升序排列的比较函数 var values = [,,,,]; values.sort(compare); console.log(values);//结果[, , , , ]
3. オブジェクト属性に従って配列を並べ替えます
最初に属性名を受け取る関数を定義し、次にこの属性名に基づいて比較関数を作成します。この関数の定義は次のとおりです:
function createComparisonFunction(propertyName){ return function(object, object){ var a = object[propertyName]; var b = object[propertyName]; if(a < b){ return -; }else if(a > b){ return ; }else{ return ; } } }//返回一个根据属性名创建的按升序排列的比较函数
上記の関数は以下の例のように使用できます。
var data = [{name:"Lily", age: }, {name:"Judy", age: }]; data.sort(createComparisonFunction("name")); console.log(data[].name);//Judy data.sort(createComparisonFunction("age")); console.log(data[].name);//Lily