considérer le tableau suivant d'objets:
objArr = [ {key:"Mon Sep 23 2013 00:00:00 GMT-0400", val:42}, {key:"Mon Sep 24 2013 00:00:00 GMT-0400", val:78}, {key:"Mon Sep 25 2013 00:00:00 GMT-0400", val:23}, {key:"Mon Sep 23 2013 00:00:00 GMT-0400", val:54}, //Notre objectif est de fusionner les touches en double et de résumer leurs valeurs respectives, résultant en:
reducedObjArr = [ {key:"Mon Sep 23 2013 00:00:00 GMT-0400", val:96}, {key:"Mon Sep 24 2013 00:00:00 GMT-0400", val:78}, {key:"Mon Sep 25 2013 00:00:00 GMT-0400", val:23} ]Bien qu'une tentative initiale puisse impliquer d'itérer et de pousser des valeurs, une approche plus efficace consiste à tirer parti des fonctions intégrées de JavaScript:
// Use a Map to count values with the same key const counts = objArr.reduce((prev, curr) => { let count = prev.get(curr.key) || 0; prev.set(curr.key, curr.val count); return prev; }, new Map()); // Convert the Map back to an array of objects const reducedObjArr = [...counts].map(([key, value]) => { return {key, value}; });Cette méthode réduit le tableau à une carte où les touches représentent les valeurs et les valeurs de clés en double représentent leurs sommes. La carte est ensuite convertie en un tableau d'objets pour la lisibilité.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3