Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

配列を年と月で並べ替えるJavaScript


このような配列があります-

const arr = [{
   year: 2020,
   month: 'January'
}, {
   year: 2017,
   month: 'March'
}, {
   year: 2010,
   month: 'January'
}, {
   year: 2010,
   month: 'December'
}, {
   year: 2020,
   month: 'April'
}, {
   year: 2017,
   month: 'August'
}, {
   year: 2010,
   month: 'February'
}, {
   year: 2020,
   month: 'October'
}, {
   year: 2017,
   month: 'June'
}]

この配列を年順に昇順(昇順)で並べ替える必要があります。さらに、同じ年のプロパティを持つ2つのオブジェクトが存在する場合は、月ごとにそれらの年を並べ替える必要があります(jan、feb、marchなど)。

それでは、このソート問題のコードを書いてみましょう。このための完全なコードは-

になります

const arr = [{
   year: 2020,
   month: 'January'
}, {
   year: 2017,
   month: 'March'
}, {
   year: 2010,
   month: 'January'
}, {
   year: 2010,
   month: 'December'
}, {
   year: 2020,
   month: 'April'
}, {
   year: 2017,
   month: 'August'
}, {
   year: 2010,
   month: 'February'
}, {
   year: 2020,
   month: 'October'
}, {
   year: 2017,
   month: 'June'
}]
const months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
const sorter = (a, b) => {
   if(a.year !== b.year){
      return a.year - b.year;
   }else{
      return months.indexOf(a.month) - months.indexOf(b.month);
   };
};
arr.sort(sorter);
console.log(arr);

年が異なるかどうかを確認し、年で並べ替えるだけですが、年が同じ場合は、定義したカスタムの月の配列を使用して月を確認します。これにより、同じ年のオブジェクトが月で並べ替えられます。

出力

コンソールの出力は-

になります
[
   { year: 2010, month: 'January' },
   { year: 2010, month: 'February' },
   { year: 2010, month: 'December' },
   { year: 2017, month: 'March' },
   { year: 2017, month: 'June' },
   { year: 2017, month: 'August' },
   { year: 2020, month: 'January' },
   { year: 2020, month: 'April' },
   { year: 2020, month: 'October' }
]

  1. 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-

  2. JavaScriptで配列のインデックスで並べ替える

    次のオブジェクトの配列があるとします- const arr = [    {       'name' : 'd',       'index' : 3    },    {       'name' : 'c',       'index' : 2    },    {