Tutorials
Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.
Zurück zur Übersicht
Javascript: Datum-Arrays nach Zeitspanne gruppieren
#Tutorials#Javascript
Für ein kleines Projekt, bei dem ich Unix-Timestamps nach Zeiteinheiten wie, pro Tag, pro Monat usw. gruppieren wollte, habe ich mir mit moment.js und _Underscore.js ein paar kleine Funktionen geschrieben, die mir die Daten nach jeder beliebigen Zeiteinheit gruppieren können.
// Zeitraum, welcher Moment-kompatibel sein muss. (http://momentjs.com/docs/#/manipulating/start-of/)
var unit = 'day';
var occurrenceTime = function(occurrence){
return moment(occurrence,'x').startOf(unit).valueOf();
};
var groupToTime = function(group, time){
return [
Number(time),group.length
]
};
var groupData = function(data, unit){
var result = _.chain(data)
.groupBy(occurrenceTime)
.map(groupToTime)
.value();
return result;
}
Anwendung wie folgt:// data ist ein Array von timestamps [1476861504,1476861514,1476861534,1476861554]
var grouped = groupData(data)
Macht sowas:
grouped = Array[2]
0:Array[2]
0:1477461600000
1:4
0:Array[2]
0:1477465200000
1:2
// es wird ein Array zurückgegeben, welches nach der bestimmten Zeiteinheit gruppiert ist.
// Dabei werden die Einheiten zusammengezählt. Das erste Ergebnis bedeutet also, dass es 4 Timestamps in dem Zeitraum gab, beim 2. waren es 2.
Das Ganze ist in diesem Format beispielsweise Google Chart kompatibel, und man kann so Balken oder Linien-Diagramme anzeigen
Kommentare
Es gibt noch keine Kommentare. Sei der Erste!
Hinterlasse einen Kommentar