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-