Effizientes GroupBy für Arrays von Objekten mit Underscore.js
Das Gruppieren von Daten in einem Array von Objekten ist für die Aggregation und Analyse von Informationen unerlässlich. Dies ist besonders wichtig, wenn mit strukturierten Daten gearbeitet wird. Neben verschiedenen Methoden bietet Underscore.js eine leistungsstarke Lösung zum Gruppieren von Objekten nach bestimmten Kriterien.
In diesem Fall möchten Sie die Objekte nach verschiedenen Feldkombinationen wie Phase und Schritt gruppieren und gleichzeitig summieren die entsprechenden Werte. Underscore.js bietet eine GroupBy-Funktion, die diese Aufgabe effizient erledigen kann.
Hier ist ein Beispiel für die Verwendung von Underscore.js, um das Array von Objekten nach Phase zu gruppieren:
const data = [ { Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" }, { Phase: "Phase 1", Step: "Step 1", Task: "Task 2", Value: "10" }, { Phase: "Phase 1", Step: "Step 2", Task: "Task 1", Value: "15" }, { Phase: "Phase 1", Step: "Step 2", Task: "Task 2", Value: "20" }, { Phase: "Phase 2", Step: "Step 1", Task: "Task 1", Value: "25" }, { Phase: "Phase 2", Step: "Step 1", Task: "Task 2", Value: "30" }, { Phase: "Phase 2", Step: "Step 2", Task: "Task 1", Value: "35" }, { Phase: "Phase 2", Step: "Step 2", Task: "Task 2", Value: "40" } ]; const groupedByPhase = _.groupBy(data, 'Phase');
Dieser Vorgang führt zu einem Objekt, bei dem die Schlüssel die unterschiedlichen Werte von Phase sind und die Werte Arrays von Objekten sind, die zu jeder Phase gehören. Um den Gesamtwert für jede Phase zu berechnen, können Sie die Reduzierungsfunktion wie folgt verwenden:
const phaseTotals = _.map(groupedByPhase, function(phaseData) { return { Phase: phaseData[0].Phase, Value: _.reduce(phaseData, function(memo, object) { return memo + Number(object.Value); }, 0) }; });
Auf ähnliche Weise können Sie die Objekte nach einer beliebigen Kombination von Feldern nach dem gleichen Prinzip gruppieren. Durch die Nutzung der groupBy-Funktion von Underscore.js können Sie Ihre Daten effizient gruppieren und so wertvolle Einblicke in Ihren Datensatz liefern.
Das obige ist der detaillierte Inhalt vonWie kann Underscore.js Daten in einem Array von Objekten effizient gruppieren und summieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!