Heim >Web-Frontend >js-Tutorial >Wie kann ich mithilfe eines Vanilla-Ansatzes ein Array von Objekten in JavaScript effizient gruppieren?
Das Gruppieren von Objekten basierend auf gemeinsamen Eigenschaften ist eine häufige Aufgabe in der Datenverarbeitung. Dieses Snippet bietet eine effiziente Lösung zum Gruppieren von Objekten in einem Array mithilfe eines Vanilla-JavaScript-Ansatzes.
Obwohl Underscore.js eine GroupBy-Funktion bietet, ist deren Implementierung möglicherweise nicht der Fall Geeignet, wenn Sie „zusammengeführte“ Ergebnisse statt separater Gruppen benötigen.
Das Folgende Das Skript definiert eine GroupBy-Funktion, die ein Array von Objekten bearbeitet:
var groupBy = function(xs, key) { return xs.reduce(function(rv, x) { (rv[x[key]] = rv[x[key]] || []).push(x); return rv; }, {}); };
So gruppieren Sie Objekte nach „Phase“:
const data = [ { Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" }, ... ]; const groupedByPhase = groupBy(data, 'Phase');
groupedByPhase enthält :
{ "Phase 1": [ { Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" }, ... ], "Phase 2": [ { Phase: "Phase 2", Step: "Step 1", Task: "Task 1", Value: "25" }, ... ] }
Um weiter zu gruppieren „Schritt“:
const groupedByPhaseStep = _(groupedByPhase).values().map(phase => { return groupBy(phase, 'Step'); }).value();
groupedByPhaseStep enthält:
[ { "Phase": "Phase 1", "Step": "Step 1", "Value": 15 }, ... ]
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe eines Vanilla-Ansatzes ein Array von Objekten in JavaScript effizient gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!