JavaScript | sort( )
9138 ワード
sort()メソッドは、数値、文字列だけでなく、オブジェクトのソートにも使用できるため、利用率が高い.
しかし毎日混同しています...だから整理して!
:sort()メソッドは、配列内の要素を適切な位置に並べ替え、配列を返します.パラメータ
compareFunction | Optional
ソート順を定義する関数.省略すると、配列は各要素の文字列変換に基づいて各文字のUnicodeコードポイント値で並べ替えられます. デフォルトではcompareFnが省略されている場合は=>昇順で並べ替えられます
では昇順にcomparefnは必要ありませんか??
次の例を示します.
👉🏻 各インデックスタイプが数値の配列を昇順にソートするには、パラメータ(compareFunction)を使用する必要があります.
要素を文字列に変換し、Unicodeコードポイント順に文字列を比較してソートします.例えば、「バナナ」は「さくらんぼ」の前に現れます.数値ソートでは、9が80より優先されますが、数値は文字列に変換されるため、Unicode順序の9よりも「80」が優先されます.
:配列要素はcompare関数の戻り値に基づいてソートされます.aとbが比較的2つの要素であるとすると、
比較Function(a,b)が0より小さい場合、aはbより低いインデックスに並べ替えられる.つまり、aが先に来る.
compareFunction(a,b)が0を返すと、aおよびbは変更されずに他のすべての要素がソートされます.
*注意:ECMAScript規格ではこの動作は保証されていないため、すべてのブラウザ(たとえば、Mozillaバージョンは少なくとも2003年以降のバージョン)ではサポートされていません.
比較Function(a,b)が0より大きい場合、bはaより低いインデックスとして起動される.つまりbが先に来る.
比較機能(a,b)は、要素aとbの特定のペアに2つの引数が付与された場合、常に同じ値を返さなければならない.一致しない結果を返すと、ソート順は定義されません.
オブジェクトのソート
しかし毎日混同しています...だから整理して!
sort()
:sort()メソッドは、配列内の要素を適切な位置に並べ替え、配列を返します.
compareFunction | Optional
ソート順を定義する関数.省略すると、配列は各要素の文字列変換に基づいて各文字のUnicodeコードポイント値で並べ替えられます.
では昇順にcomparefnは必要ありませんか??
次の例を示します.
const arr = [2, 1, 3, 10];
//
arr.sort();
document.writeln(arr + '<br>'); // [1, 10, 2, 3]
//
//- 배열을 오름차순으로 정렬(Infinity 및 NaN이 포함되어 있지 않은 경우).```
各インデックスの最初の位置の値を比較することによって、所望の[1,2,3,10]値を得ることができない.👉🏻 各インデックスタイプが数値の配列を昇順にソートするには、パラメータ(compareFunction)を使用する必要があります.
const arr = [2, 1, 3, 10];
//
arr.sort(function(a, b) {
if(a > b) return 1;
if(a === b) return 0;
if(a < b) return -1;
});
:a,bは2つのパラメータを受信し,a>bは1を返し,a=bは0を返し,a⇨ case 1. 「比較機能」が提供されていない場合.要素を文字列に変換し、Unicodeコードポイント順に文字列を比較してソートします.例えば、「バナナ」は「さくらんぼ」の前に現れます.数値ソートでは、9が80より優先されますが、数値は文字列に変換されるため、Unicode順序の9よりも「80」が優先されます.
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
//
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
⇨ case 2. 「比較機能」を提供する場合.:配列要素はcompare関数の戻り値に基づいてソートされます.aとbが比較的2つの要素であるとすると、
比較Function(a,b)が0より小さい場合、aはbより低いインデックスに並べ替えられる.つまり、aが先に来る.
compareFunction(a,b)が0を返すと、aおよびbは変更されずに他のすべての要素がソートされます.
*注意:ECMAScript規格ではこの動作は保証されていないため、すべてのブラウザ(たとえば、Mozillaバージョンは少なくとも2003年以降のバージョン)ではサポートされていません.
比較Function(a,b)が0より大きい場合、bはaより低いインデックスとして起動される.つまりbが先に来る.
比較機能(a,b)は、要素aとbの特定のペアに2つの引数が付与された場合、常に同じ値を返さなければならない.一致しない結果を返すと、ソート順は定義されません.
const arr = [2, 1, 3, 10];
// ↘️ 내림차순 정렬
arr.sort(function(a, b) {
return b - a;
}); // [10,3,2,1]
// ↗️ 오름차순 정렬
const arr = [2, 1, 3, 10];
arr.sort(function(a, b) {
return a - b;
}); // [1,2,3,10]
ソートソース|配列(昇順、降順、文字列、オブジェクト) オブジェクトのソート
Reference
この問題について(JavaScript | sort( )), 我々は、より多くの情報をここで見つけました https://velog.io/@kihyeon8949/JavaScript-sort-qqediz48テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol