2016-05-01 20 views
-1

Ich versuche, ein Array-Objekt nach Datum zu sortierenSortierung nach Datum funktioniert nicht in Rand

this.result.sort((a, b) => { 
if (this.filter.orderBy === 'possession') { 
    //if(moment(a.overview.possession_starts).isAfter(moment(b.overview.possession_starts))) 
    //sort string ascending 
    if (moment(a.overview.possession_starts) > moment(b.overview.possession_starts)) 
    //sort string ascending 
    return 1; 
    return 0; 
}); 

funktioniert gut in Mozilla und Chrom

+0

nein der Iteration ist alos Diff in Kante und Chrom – Rhushikesh

+2

Sie geben nie einen negativen Wert zurück? Der Fehler ist nicht in Edge, sondern in Ihrem Code –

+0

Bitte zeigen Sie uns eine funktionierende Reproduktion. Sie können ein Beispiel in Ihrer Frage stehen, indem Sie [ein Snippet erstellen] erstellen (https://blog.stackoverflow.com/2014/09/introducing-runnable-javascript-css-and-html-code-snippets/). – Sampson

Antwort

1

Ihr Rückruf gibt 1, 0 oder undefined. Dies ist nicht erforderlich, was von der sort function erforderlich ist. Fix it:

if (this.filter.orderBy === 'possession') { 
    this.result.sort((a, b) => { 
      return moment(a.overview.possession_starts).milliseconds() - moment(b.overview.possession_starts).milliseconds(); 
    }); 
} 
+0

es funktioniert nicht – Rhushikesh

-1

Sie können Ihren Code durch diese eine Zeile ersetzen.

this.filter.orderBy === 'possession' && this.result.sort((a, b) => moment(a.overview.possession_starts).milliseconds() - moment(b.overview.possession_starts).milliseconds());