J'essaie de combiner les objets imbriqués à l'intérieur d'éléments avec la même clé.Combiner des tableaux d'objets correspondants
- Find « haut niveau » valeurs qui sont dupliquées,
- combinons les éléments de « haut niveau » en double en un seul objet (y compris leurs enfants.
- Il devrait y avoir aucune valeur en double à l'intérieur des réseaux « de type »
Je l'ai essayé ici https://jsfiddle.net/Lpq6huvw/410/
données d'entrée:
[{
"a": "Mon",
"type": [{
"b": 1
}, {
"b": 3
}]
}, {
"a": "Mon",
"type": [{
"b": 2
}]
}, {
"a": "Tue",
"type": [{
"b": 40
}]
}, {
"a": "Tue",
"type": [{
"b": 50
}]
}, {
"a": "Wed",
"type": [{
"b": 30
}]
}]
Dans ce tableau:
[{
"a": "Mon",
"type": [{
"b": 1
}, {
"b": 3
},
{
"b": 2
}]
},
{
"a": "Tue",
"type": [{
"b": 40
},
{
"b": 50
}]
}, {
"a": "Wed",
"type": [{
"b": 30
}]
}]
J'ai essayé ce ci-dessous, qui mappe tous les éléments dupliqués comme un seul objet. Cependant, je veux qu'il cartographie chaque sous son prédécesseur de «niveau supérieur».
const z = _.uniqBy(_.filter(data.map(e=>e.a), v => _.filter(data.map(e=>e.a), v1 => v1 === v).length > 1))
const dupes = data.filter(itm => z.includes(itm.a))
const flat = _.flatMap(dupes, item =>
_(item.type)
.map(v => ({b: v.b}))
.value()
)
Est-ce que les noms de propriétés toujours le même, avec des valeurs changeant juste? – nnnnnn
Oui, ils resteront les mêmes – Ycon
* "Il ne devrait pas y avoir de valeurs dupliquées dans les tableaux 'type'" * - Voulez-vous dire que l'entrée n'aura jamais de valeurs 'type' dupliquées, ou que l'entrée pourrait avoir des doublons mais la sortie ne devrait pas? – nnnnnn