Ich würde zuerst _.groupBy()
so etwas wie Lodash ist verwenden, um ein Objekt zu erstellen, wo der Schlüssel das Datum (als formatierten String oder String des numerischen Wertes) ist und der Wert ist ein Array von Objekten mit dem gleichen Datum.
Dann iterieren Sie über das Objekt und wenn das Werte-Array mehr als ein Element hat, machen Sie etwas damit.
z.B. bei Verwendung von Lodash (vorausgesetzt, Ihr Array von Objekten wird array
genannt):
var grouped = _.groupBy(array, function (obj) { return '' + obj.start.getTime(); });
_.each(grouped, function (objects, date) {
if (objects.length > 1) {
doSomething(objects);
}
});
Wenn nicht Lodash/Unterstrichen verwenden, können Sie einfach Ihre eigene Gruppierungsfunktion rollen:
function groupBy(collection, callback) {
var output = {};
angular.forEach(collection, function (obj) {
var groupKey = callback(obj);
if (!output[groupKey]) {
output[groupKey] = [obj];
} else {
output[groupKey].push(obj);
}
});
return output;
}
// to use it:
var groupedByDate = groupBy(array, function (obj) { return '' + obj.start.getTime(); });
angular.forEach(groupedByDate, function (objects, date) {
if (objects.length > 1) {
doSomething(objects);
}
});
können Sie das eigentliche Objekt posten? und was hast du probiert? – JordanHendrix
Sie können Filter verwenden, um das Element im Array mit einem genauen Datum zu extrahieren array.filter ((e) => {return e.start === "Mo Apr 25 2016 16:00:00 GMT-0700 (Pacific Daylight Time) "}); –