ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript でオブジェクトの配列を日付で降順に並べ替えるにはどうすればよいですか?

JavaScript でオブジェクトの配列を日付で降順に並べ替えるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-27 16:04:10
オリジナル
737 人が閲覧しました

How Can I Sort an Array of Objects by Date in Descending Order in JavaScript?

日付プロパティによるオブジェクト配列の並べ替え

問題: 日付プロパティを持つオブジェクトの配列があり、に最も近い日付に基づいて降順に並べ替えます。 present.

解決策:

カスタム コンパレータの使用:

1 つの方法は、組み込みの sort( ) メソッドとカスタム コンパレータ関数を組み合わせます。コンパレータ関数は 2 つのオブジェクト a と b を引数として受け取り、a が b の前、b の後に来る場合、または同じ位置に留まる場合、それぞれ負の値、正の値、またはゼロの値を返します。

日付で並べ替える場合、コンパレータ関数は日付文字列を JavaScript 日付に変換し、それらを減算します。

array.sort(function(a, b) {
  return new Date(b.date) - new Date(a.date);
});
ログイン後にコピー

Generic解決策:

より一般的な解決策は、配列に対してシュワルツ変換を実行するカスタム sortBy() 関数を定義することです。この関数を使用すると、日付だけでなく、任意のプロパティで並べ替えることができます。

(function() {
  if (!Array.prototype.sortBy) Array.prototype.sortBy = sb;

  function sb(f) {
    // ... implementation
  }
})();
ログイン後にコピー

このカスタム関数を使用すると、次のように日付プロパティで並べ替えることができます:

array.sortBy(function(o) { return o.date });
ログイン後にコピー

複雑な日付比較の処理:

日付プロパティが直接比較できない場合は、比較可能な値を抽出できます。 JavaScript Date オブジェクトなどから、

array.sortBy(function(o) { return new Date(o.date) });
ログイン後にコピー

複数の基準による並べ替え:

また、sortBy() 関数を使用して複数の基準で並べ替えることもできます。 。コンパレータ関数から値の配列を返すだけです:

// Sort by date, then score (reversed), then name
array.sortBy(function(o) { return [o.date, -o.score, o.name] });
ログイン後にコピー

以上がJavaScript でオブジェクトの配列を日付で降順に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート