Comment créer des tables avec des éléments groupés à l'aide de ES6
J'ai des objets dans le tableau: p> Si Keyone a la même clé et la même valeur que je vais créer un nouveau tableau :
Sortie: p> En d'autres termes, je souhaite obtenir des groupements d'objets en fonction des valeurs d'une clé particulière. P> [ [ { keyOne: 1 }]
, [ { keyOne: 2, keyTwo : 3 }, { keyOne: 2, keyThree: 2 }]
, [ { keyOne: 4, keyFour: 32 }]
]
3 Réponses :
Ma compréhension est que vous voulez juste un tableau de tableaux d'objets où tous les objets d'un tableau sont regroupés par un nom de clé.
Ainsi, en tant que solution à votre problème, j'ai fait une fonction qui prendra une fonction la matrice et le nom de clé comme paramètres et renvoient les groupements. p>
p>
const givenArr = [{KeyOne: 1,KeyTwo:2},{KeyOne:2, KeyTwo:3}, {KeyOne:2,KeyTwo: 2, KeyThree:2}, {KeyOne: 4,KeyTwo: 3, KeyFour:32}] const getGroupingsByKey = (arr,key) => { let valueToArrayMap = {}; arr.forEach(obj => { if(!valueToArrayMap[obj[key]]){ valueToArrayMap[obj[key]] = []; } valueToArrayMap[obj[key]].push(obj); }) return Object.keys(valueToArrayMap).reduce((targetArr,currentKey) => { targetArr.push(valueToArrayMap[currentKey]); return targetArr; },[]); } console.log("Group by KeyOne\n",getGroupingsByKey(givenArr,"KeyOne")); console.log("Group by KeyTwo\n",getGroupingsByKey(givenArr,"KeyTwo"));
Vous êtes censé montrer à certains de vos essais ...
et faites attention à vos noms de variables, JavaScript est sensible à la casse ([{Strong> K Strong> Eyone: 1}, { K fort> Eyone: 2,) p>
.as-console-wrapper { max-height: 100% !important; top: 0; background-color: turquoise; }
J'ai trouvé une solution plus rapide
Donc, fondamentalement, vous devez regrouper des éléments par la touche code> KeyONe CODE> et mettre des éléments groupés dans la sous-réseau. Est-ce exact?
Oui c'est vrai :)