Est-ce que quelqu'un sait s'il existe un moyen (lodash si possible également) de regrouper un tableau d'objets par une clé d'objet, puis de créer un nouveau tableau d'objets en fonction du regroupement? Par exemple, j'ai un tableau d'objets de voitures:
const cars = [
{
'make': 'audi',
'model': 'r8',
'year': '2012'
}, {
'make': 'audi',
'model': 'rs5',
'year': '2013'
}, {
'make': 'ford',
'model': 'mustang',
'year': '2012'
}, {
'make': 'ford',
'model': 'fusion',
'year': '2015'
}, {
'make': 'kia',
'model': 'optima',
'year': '2012'
},
];
Je veux créer un nouveau tableau d'objets de voitures regroupé par make
:
const cars = {
'audi': [
{
'model': 'r8',
'year': '2012'
}, {
'model': 'rs5',
'year': '2013'
},
],
'ford': [
{
'model': 'mustang',
'year': '2012'
}, {
'model': 'fusion',
'year': '2015'
}
],
'kia': [
{
'model': 'optima',
'year': '2012'
}
]
}
4 votes
Votre résultat n'est pas valide.
0 votes
Y a-t-il une approche similaire pour obtenir une carte à la place d'un objet?
3 votes
Si vous utilisez Typescript (ce qui n'est pas le cas de l'OP), vous avez déjà la méthode groupBy. Vous pouvez l'utiliser en
votre_array.groupBy(...)
8 votes
Votre_array.groupBy(...) n'existe pas !!
0 votes
Ce mec a créé une version de la fonction js bêta array.group() qui fonctionne très bien : dmitripavlutin.com/javascript-array-group
0 votes
@NinaScholz je suis désolé, mais en quoi leur résultat souhaité est-il invalide?