並べ替え
13354 ワード
sortを学ぶきっかけ
過去に解いたアルゴリズムを復習する中で...文字列をソートする場合、[a,ab]配列の2つの要素を比較すると、まず大文字をソートする問題になり、このときも書くことが分からないようです.
?? これは何ですか.
自分がGoogleをコピーした過去を反省して、知って書くべきだったのですが、ソート問題をするたびに、いつまで検索したいのか、今回のブログ記事のテーマを選びました!
sortメソッドとは?
配列要素の順序を変更するために配列が提供する高次関数.
デフォルトでは、要素を昇順にソートします(sortメソッドを使用して要素を降順にソートし、reverse()を適用するのは簡単です).
文字列内のUnicodeコードポイントの順序に基づく
使用時に元のアレイのソートを変更する
sort比較
1)数値ソート
数値ソートはsort()を使用できませんか?
配列の要素は数値ですが、一時的に文字列に変換し、位置合わせを決定します.
const nums = [5, 7, 2, 10];
nums.sort();
console.log(nums); // [ 10, 2, 5, 7 ]
👩🏫 ソリューション(1)ソート順を定義する比較関数をパラメータとしてsortメソッドに渡す
(2)比較関数は正/負/0を返す
const nums = [5, 7, 2, 10];
nums.sort((num1, num2) => num1 - num2); // 산술 연산자를 이용
console.log(nums);// [ 2, 5, 7, 10 ]
2)並べ替えのデータ型が分からない
実際、自分でプログラミングを行うと、ソート時にすべてのデータ型が認識されず、ほとんどの場合、オブジェクトタイプが使用されます.
その时、私たちは実習を通じてどのようにソートするかを知りました!!
📌 各入力のPropertyキーに学生オブジェクトを出力しようとします
const students = [
{ id: 3, name: 'sian', register: true },
{ id: 2, name: 'minzy', register: false },
{ id: 1, name: 'hanna', register: false },
];
const sortStudy = (students, key) =>
[...students].sort((student1, student2) =>
student1[key] > student2[key] ? 1 : student1[key] < student2[key] ? -1 : 0
);
console.log(sortStudy(students, 'id'));
console.log(sortStudy(students, 'name'));
console.log(sortStudy(students, 'register'));
結果[
{ id: 1, name: 'hanna', register: false },
{ id: 2, name: 'minzy', register: false },
{ id: 3, name: 'sian', register: true }
]
[
{ id: 1, name: 'hanna', register: false },
{ id: 2, name: 'minzy', register: false },
{ id: 3, name: 'sian', register: true }
]
[
{ id: 2, name: 'minzy', register: false },
{ id: 1, name: 'hanna', register: false },
{ id: 3, name: 'sian', register: true }
]
👩🏫 ソリューション演算子(たとえば、Property値が文字列の場合)を使用すると、NANが表示され、比較演算子=>=が使用されます.
Askyコードの値を比較する場合、最初のパラメータが2番目のパラメータより大きい場合は?もしそうなら、最初の買収に後退(-1処理)
2番目のパラメータが1番目のパラメータより大きい場合は変化しません(1で処理)
2つの引数のAskyコード値が同じ場合は0とします.
(2つの買収を処理してもswapは発生しない!!同様に、swapが発生したらどうなるかと思っていたが、変わらず、より明確なのは明示的な処理)
👩💻
[...students]
を使用してスプレッドシートを処理するのは、sortがソースコードを変更する方法であるため、コピーを作成して変更した後、矢印関数の戻り値に値を渡します.n/a.結論
将来のアルゴリズムやアプリケーション開発では、ソートが非常に重要な役割を果たします.
データ型を知って処理することはほとんどないでしょう...そこで,すべてのデータを処理できるソースコードの作成を学習している.
Reference
モダンJavaScript-アレイ高次関数
MDN-Array.prototype.sort()
Reference
この問題について(並べ替え), 我々は、より多くの情報をここで見つけました https://velog.io/@akk0504/배열-정렬-sortテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol