Ich versuche, die verschachtelten Objekte innerhalb von Elementen mit dem gleichen Schlüssel zu kombinieren.Kombinieren übereinstimmenden Objekt-Arrays
- Suche ‚Top-Level‘ Werte, die doppelt vorhanden sind,
- die duplizierten ‚Top-Level‘ Elemente in einem Objekt kombinieren (einschließlich ihrer Kinder.
- Es sollte in den ‚Typ‘ Arrays keine doppelten Werte
versuchte ich es hier https://jsfiddle.net/Lpq6huvw/410/
Eingangsdaten:
[{
"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
}]
}]
In diesem Array:
[{
"a": "Mon",
"type": [{
"b": 1
}, {
"b": 3
},
{
"b": 2
}]
},
{
"a": "Tue",
"type": [{
"b": 40
},
{
"b": 50
}]
}, {
"a": "Wed",
"type": [{
"b": 30
}]
}]
ich versuchte darunter, die alle duplizierten Elemente als ein Objekt abbildet. Ich möchte jedoch, dass jeder unter seinem "Toplevel" Vorgänger abgebildet wird.
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()
)
Werden die Eigenschaftsnamen werden immer die gleichen, mit nur Werte ändern? – nnnnnn
Ja, sie werden gleich bleiben – Ycon
* "Es sollte keine doppelten Werte innerhalb der 'type' Arrays" * - Meinst du, dass die Eingabe nie duplizierten 'type'-Werte, oder dass die Eingabe duplizieren kann, aber die Ausgabe sollte nicht? – nnnnnn