Javascriptでの配列要素の並べ替え
JavaScriptには、配列を並べ替えるための非常に強力な組み込み関数があります。デフォルトでは、sortメソッドは要素をアルファベット順にソートします。たとえば、
例
let arr1 = ["Zebra", "Bear", "Tiger"]; arr1.sort(); console.log(arr1);
出力
これにより、出力が得られます-
[ 'Bear', 'Tiger', 'Zebra' ]
次に、intの例を見てみましょう。
例
let arr1 = [1, 8, 31, 21]; arr1.sort(); console.log(arr1);
出力
これにより、出力が得られます-
[ 1, 21, 31, 8 ]
これは私たちが期待したものではありません。デフォルトでは、sortメソッドは要素をアルファベット順にソートするため、これは出力されています。希望に応じて並べ替えるには、2つの引数を適用してどちらが大きいか、どちらが小さいかを判断し、それに応じて並べ替える比較関数を提供する必要があります。したがって、整数配列を並べ替えるには、-
を呼び出す必要があります。例
let arr1 = [1, 8, 31, 21]; arr1.sort((a, b) => a - b); console.log(arr1);
出力
これにより、出力&、マイナス;
が得られます[ 1, 8, 21, 31 ]
これは、オブジェクト配列の並べ替えなど、より複雑な場合に並べ替えに使用するキーを指定するためにも使用できます。たとえば、
例
let people = [{ name: "Zoe", age: 35 }, { name: "Richard", age: 21 }, { name: "Agnes", age: 25 }]; people.sort((a, b) => { let nameA = a.name.toUpperCase(); // ignore upper and lowercase let nameB = b.name.toUpperCase(); // ignore upper and lowercase if (nameA < nameB) { return -1; } if (nameA > nameB) { return 1; } // names must be equal return 0; }) console.log(people)
出力
これにより、出力が得られます-
[ { name: 'Agnes', age: 25 }, { name: 'Richard', age: 21 }, { name: 'Zoe', age: 35 } ]
より複雑なオブジェクトもこの方法で並べ替えることができます。比較関数をどのように構成するかがすべてです。
ご覧のとおり、この関数は配列を所定の位置に並べ替えます。この配列と同じ順序を維持しながら、新しいソートされた配列を返すには、次を使用して最初にコピーを作成し、次にソートを適用します。
出力
arr.slice(0).sort();
-
Javascriptでのマージソートとクイックソート
マージソートは、分割統治法に基づくソート手法です。最悪の場合の時間計算量はΟ(n log n)です。ただし、このアルゴリズムは余分なO(n)メモリを必要とするため、スペースの面で追加のコストが発生します。 次に、このアルゴリズムをどのように実装するかを見てみましょう。 mergeSortとmergeの2つの関数を作成します。 マージ −この関数は2つの引数を取ります。これらは、2つの部分配列であり、要素を正しい順序で挿入することにより、1つに連結されます。 マージソート −この関数は、配列の左半分と右半分でmergeSortを再帰的に呼び出し、mergeを使用してこれらの配列部分を結合し
-
JavaScriptのArray.prototype.sort()。
JavaScript Array.prototype.sort()メソッドは、配列の並べ替えに使用されます。並べ替えの順序は、アルファベット、数字、昇順、降順のいずれかです。 以下は、Array.prototype.sort()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-