Wie kann ich das minimale und das maximale Datum aus einer Reihe von Daten herausfinden? Derzeit erstelle ich ein Array wie folgt:
var dates = [];
dates.push(new Date("2011/06/25"))
dates.push(new Date("2011/06/26"))
dates.push(new Date("2011/06/27"))
dates.push(new Date("2011/06/28"))
Gibt es eine eingebaute Funktion, um dies zu tun, oder soll ich meine eigene schreiben?
javascript
date
max
min
Legende
quelle
quelle
dates.push('2011/06/05')
. Mithilfe von Zeichenfolgen kann das Array einfach sortiert und der erste und letzte Elementwert zurückgegeben und bei Bedarf in Datumsangaben konvertiert werden.YYYY/MM/DD HH:MM:SS
und viele Zeichenfolgen beteiligt sind, würden Sie einen Zeichenfolgenvergleich oderNumber(new Date(dateString))
Vergleiche empfehlen ?Etwas wie:
Getestet auf Chrome 15.0.854.0 dev
quelle
Array.reduce()
vor IE9 nicht im IE verfügbar. Coole Idee.function foreach(func, array) { for(var i = 0; i != array.length; ++i) { func(array[i]); } } function reduce(combine, base, array) { foreach(function(element) { base = combine(base, element); }, array); return base; }
_.min
und_.max
arbeiten an Arrays von Daten; Verwenden Sie diese, wenn Sie Lodash oder Unterstrich verwenden, und erwägen Sie die Verwendung von Lodash (das viele solche Dienstprogrammfunktionen bietet), falls Sie dies noch nicht getan haben.Beispielsweise,
gibt das zweite Datum im Array zurück (da es das früheste ist).
quelle
Gleich wie gelten, jetzt mit Spread :
(könnte ein Kommentar zur besten Antwort sein)
quelle
Da Datumsangaben in die UNIX-Epoche (Zahlen) konvertiert werden, können Sie Math.max / min verwenden, um diese zu finden:
(nur in Chrome getestet, sollte aber in den meisten Browsern funktionieren)
quelle
** Verwenden Sie Spread-Operatoren | ES6 **
Das gibt das Mindestdatum aus dem Array an.
quelle
ONELINER :
führt in Variablen
min
und diemax
Komplexität O (n log n) , editierbare Beispiel hier . Wenn Ihr Array keine Datumswerte (wienull
) hat, bereinigen Sie es zuerst mitdates=dates.filter(d=> d instanceof Date);
.Code-Snippet anzeigen
quelle
quelle
Die obigen Antworten behandeln keine leeren / undefinierten Werte, um dies zu beheben. Ich habe den folgenden Code verwendet und Leerzeichen durch NA ersetzt:
Ich habe hier eine einfache Javascript- Demo hinzugefügt und sie als Filter mit AngularJS in diesem Codepen verwendet
quelle
Dies ist eine besonders gute Möglichkeit, dies zu tun (Sie können mit einer der Objekteigenschaften maximal ein Array von Objekten abrufen):
Math.max.apply(Math,array.map(function(o){return o.y;}))
Dies ist die akzeptierte Antwort für diese Seite: Ermitteln des Maximalwerts eines Attributs in einem Array von Objekten
quelle
Verwenden von Moment , Unterstrich und jQuery , um eine Reihe von Daten zu iterieren.
Beispiel JSON:
Javascript:
Ich hoffe es hilft.
quelle