2017-06-16 7 views
0

Hier ist meine ArrayWie Array sortiert nach Datum

arr=[ 
{ 
    date:'2017-06-14 14:03:49' 
}, 
{ 
    date:'2017-04-20 10:25:32' 
}, 
{ 
    date:'2017-06-02 15:57:16' 
}, 
{ 
    date:'2017-06-02 17:52:05' 
}, 
{ 
    date:'2017-06-02 21:47:13' 
}, 
{ 
    date:'2017-06-14 14:01:31' 
} 
] 

Ich sortiere brauche einen Array nach Datum.

Wie kann ich dies tun,

Bitte beraten Sie mich,

Dank

+0

Weiß nicht, ob das ein exaktes Duplikat ist. In diesem Fall kann, da die Datumszeichenfolgen ISO 8601 sind, die Vergleichsfunktion einfach "return a.localCompare (b)" sein, so dass überhaupt kein Datum benötigt wird. – RobG

Antwort

2

Verwenden Array#sort Verfahren und in Vergleichsfunktion die Zeichenfolge und Rückgabewert analysieren entspricht, indem die Differenz zu bekommen.

var arr = [{ 
 
    date: '2017-06-14 14:03:49' 
 
}, { 
 
    date: '2017-04-20 10:25:32' 
 
}, { 
 
    date: '2017-06-02 15:57:16' 
 
}, { 
 
    date: '2017-06-02 17:52:05' 
 
}, { 
 
    date: '2017-06-02 21:47:13' 
 
}, { 
 
    date: '2017-06-14 14:01:31' 
 
}]; 
 

 
arr.sort(function(a, b) { 
 
    // convert date object into number to resolve issue in typescript 
 
    return +new Date(a.date) - +new Date(b.date); 
 
}) 
 

 
console.log(arr);

das Problem in git Siehe: Error when doing arithmetic operations on date

Oder verweisen: TypeScript sort by date not working

+0

Frage ist eindeutig ein Duplikat. Warum antworten Sie dann ... –

+0

@Pranav C Balan Danke für Ihre Antwort. Wirklich verwende ich typescript.Ich bekomme diese irr linken Seite eine arithmetische Operation muss von Typ any sein.Kindly rate mir – ANISUNDAR

+0

@ANISUNDAR: aktualisiert die Antwort , Sie müssen es in Zahl umwandeln, da es ein Datumsobjekt ist .... es kann durch Hinzufügen von '+' vor dem Parsing-Datum gemacht werden –