Heim > Web-Frontend > js-Tutorial > Wie kann Underscore.js Daten in einem Array von Objekten effizient gruppieren und summieren?

Wie kann Underscore.js Daten in einem Array von Objekten effizient gruppieren und summieren?

Barbara Streisand
Freigeben: 2024-12-28 03:56:10
Original
730 Leute haben es durchsucht

How Can Underscore.js Efficiently Group and Sum Data in an Array of Objects?

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');
Nach dem Login kopieren

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)
    };
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage