-1

I have an array of objects with date, time. I am trying to sort it but somehow its not working.

var myArray = [
  {date: "2018-01-12T05:04:47+00:00", summary: "xyz 2 mg", readTerm: "", dosage: "Up to 20 mg daily"},
  {date: "2018-08-16T08:31:09", summary: "dax 600 mg", readTerm: "", dosage: "600 mg 3 times a day"},
  {date: "2016-04-10T05:04:47+00:00", summary: "abc 1 g", readTerm: "", dosage: "Two 1 g tabs daily at teatime"},
  {date: "2008-04-10T05:04:47+00:00", summary: "yayo 1.25 mg", readTerm: "", dosage: "1.25 mg daily each morning"},
  {date: "2016-04-10T05:04:47+00:00", summary: "jpojo 100 ug", readTerm: "", dosage: "100 ug/dose 1 to 2 puffs up to 4x daily"},
  {date: "2010-04-10T05:04:47+00:00", summary: "kolwl 15 mg", readTerm: "", dosage: "15 mg daily"},
  {date: "2014-01-12T05:04:47+00:00", summary: "kolld 200 mg", readTerm: "", dosage: "200 mg twice daily"},
  {date: "2016-04-10T05:04:47+00:00", summary: "akfd 20 mg", readTerm: "", dosage: "20 mg each morning"},
  {date: "2016-04-10T05:04:47+00:00", summary: "adfas 1000 mg", readTerm: "", dosage: "Two 500 mg tabs four times daily"},
  {date: "2016-04-10T05:04:47+00:00", summary: "afdas 20 g", readTerm: "", dosage: "20 mg daily"},
  {date: "2000-04-10T05:04:47+00:00", summary: "fdasf 75 mg", readTerm: "", dosage: "75 mg daily"},
  {date: "1990-04-10T05:04:47+00:00", summary: "dfsa 200 ug", readTerm: "", dosage: "100 ug/6 ug 2 puffs 2x daily"},
  {date: "1990-04-10T05:04:47+00:00", summary: "dsaf 125 ug", readTerm: "", dosage: "125 ug daily"}
  ]

  myArray.map((arr) => arr).sort((a,b) => new Date(a.date).getTime() < new Date(b.date).getTime());
Kahn
  • 239
  • 4
  • 15

2 Answers2

1

You have a code error - after arr - ):

  arr).sort((a,b)

There's a big answer on github: https://gist.github.com/onpubcom/1772996

Here's another way: https://onpub.com/how-to-sort-an-array-of-dates-with-javascript-s7-a109

here is a simple method you could iterate through:

 array.sort(function(a,b){
    return new Date(b.date).getTime() - new Date(a.date).getTime();
 });
David White
  • 504
  • 1
  • 7
  • 15
0

var myArray = [
  {date: "2018-01-12T05:04:47+00:00", summary: "xyz 2 mg", readTerm: "", dosage: "Up to 20 mg daily"},
  {date: "2018-08-16T08:31:09", summary: "dax 600 mg", readTerm: "", dosage: "600 mg 3 times a day"},
  {date: "2016-04-10T05:04:47+00:00", summary: "abc 1 g", readTerm: "", dosage: "Two 1 g tabs daily at teatime"},
  {date: "2008-04-10T05:04:47+00:00", summary: "yayo 1.25 mg", readTerm: "", dosage: "1.25 mg daily each morning"},
  {date: "2016-04-10T05:04:47+00:00", summary: "jpojo 100 ug", readTerm: "", dosage: "100 ug/dose 1 to 2 puffs up to 4x daily"},
  {date: "2010-04-10T05:04:47+00:00", summary: "kolwl 15 mg", readTerm: "", dosage: "15 mg daily"},
  {date: "2014-01-12T05:04:47+00:00", summary: "kolld 200 mg", readTerm: "", dosage: "200 mg twice daily"},
  {date: "2016-04-10T05:04:47+00:00", summary: "akfd 20 mg", readTerm: "", dosage: "20 mg each morning"},
  {date: "2016-04-10T05:04:47+00:00", summary: "adfas 1000 mg", readTerm: "", dosage: "Two 500 mg tabs four times daily"},
  {date: "2016-04-10T05:04:47+00:00", summary: "afdas 20 g", readTerm: "", dosage: "20 mg daily"},
  {date: "2000-04-10T05:04:47+00:00", summary: "fdasf 75 mg", readTerm: "", dosage: "75 mg daily"},
  {date: "1990-04-10T05:04:47+00:00", summary: "dfsa 200 ug", readTerm: "", dosage: "100 ug/6 ug 2 puffs 2x daily"},
  {date: "1990-04-10T05:04:47+00:00", summary: "dsaf 125 ug", readTerm: "", dosage: "125 ug daily"}
  ];
  
  myArray = myArray.sort((a,b) => new Date(a.date).getTime() - new Date(b.date).getTime());
  
  console.log(myArray);

If you want in descending order then use this

  myArray = myArray.sort((a,b) => new Date(b.date).getTime() - new Date(a.date).getTime());
Nishant Dixit
  • 4,704
  • 3
  • 13
  • 25