JavaScript の日付で並べ替え

Shraddha Paghdar 2023年10月12日
JavaScript の日付で並べ替え

ソートとは、データ項目間の線形関係に従ってデータを昇順または降順に並べることを意味します。 並べ替えは、名前、番号、日付、およびエントリの種類で実行できます。

今日の投稿では、JavaScript で日付の昇順または降順で並べ替える方法を学習します。

JavaScript の日付で並べ替え

データ構造には、いくつかの種類の並べ替えアルゴリズムがあります。 これらのアルゴリズムの一部は次のとおりです。

  1. 挿入ソート
  2. マージソート
  3. クイックソート
  4. 基数ソート
  5. ヒープソート
  6. 選択ソート
  7. バブルソート

JavaScript には、配列の要素をソートし、ソートされた配列を返す組み込みの sort() メソッドが用意されています。 デフォルトのソート順は昇順です。

降順でソートしたい場合は、関数を記述できます。 このメソッドは、要素を文字列に変換し、それらの UTF16 コード単位値シーケンスを比較します。

構文:

sort()
sort((a, b) => {/* write logic here */})
sort(compareFunction)
sort(function compareFunction(a, b) { /* write logic here */ })

sort() メソッドは、ab の 2つの引数を取ります。

CompareFunction はオプションのパラメータです。 これは、ソート順を定義する関数を指定します。

渡されない場合、配列要素は文字列に変換され、各文字の Unicode ポイント値に基づいて並べ替えられます。 この関数が指定されている場合、デフォルトでは、互いに比較する必要がある 2つの入力配列要素が必要です。

この関数は元の配列を変更し、コピーは作成されません。

sort() メソッドの詳細については こちら をご覧ください。

昇順と降順で日付を比較する例を作成してみましょう。

例:

const datesArray1 = ['2022-03-14', '2022-04-14', '2022-01-14'];
const datesArray2 = ['2022-03-14', '2022-04-14', '2022-01-14'];
const ascDates = datesArray1.sort((a, b) => {
  return new Date(a).getTime() - new Date(b).getTime();
});
const descDates = datesArray2.sort((a, b) => {
  return new Date(b).getTime() - new Date(a).getTime();
});
console.log(ascDates);
console.log(descDates);

この例では、3つの日付を定義しています。 比較関数では、最初に文字列の日付を日付オブジェクトに変換し、次にエポックからのミリ秒数を計算しました。

上記の例を任意のブラウザーで実行してみてください。 以下の結果が出力されます。

出力:

["2022-01-14", "2022-03-14", "2022-04-14"]
["2022-04-14", "2022-03-14", "2022-01-14"]

この例の完全なコード こちら にアクセスすることもできます。

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

関連記事 - JavaScript Sort