Maison >interface Web >js tutoriel >Comment Underscore.js peut-il regrouper et additionner efficacement des données dans un tableau d'objets ?
GroupBy efficace pour un tableau d'objets à l'aide de Underscore.js
Le regroupement de données dans un tableau d'objets est essentiel pour agréger et analyser les informations. Ceci est particulièrement important lorsque vous travaillez avec des données structurées. Parmi diverses méthodes, Underscore.js offre une solution puissante pour regrouper des objets en fonction de critères spécifiques.
Dans ce cas, vous souhaitez regrouper les objets selon diverses combinaisons de champs, telles que Phase et Étape, tout en additionnant les valeurs correspondantes. Underscore.js fournit une fonction groupBy qui peut gérer cette tâche efficacement.
Voici un exemple d'utilisation de Underscore.js pour regrouper le tableau d'objets par phase :
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');
Cette opération donne un objet dont les clés sont les valeurs distinctes de Phase et les valeurs sont des tableaux d'objets appartenant à chaque phase. Pour calculer la valeur totale de chaque phase, vous pouvez utiliser la fonction de réduction comme suit :
const phaseTotals = _.map(groupedByPhase, function(phaseData) { return { Phase: phaseData[0].Phase, Value: _.reduce(phaseData, function(memo, object) { return memo + Number(object.Value); }, 0) }; });
De même, vous pouvez regrouper les objets par n'importe quelle combinaison de champs en utilisant le même principe. En tirant parti de la fonction groupBy d'Underscore.js, vous pouvez regrouper efficacement vos données, fournissant ainsi des informations précieuses sur votre ensemble de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!