I have 2 array of objects:
var parents = [
{ id: 77777, data: {}},
{ id: 88888, data: {}},
{ id: 99999, data: {}}
]
var children = [
{
belongTo: 77777,
data: [
{ id: 111, data: {}},
{ id: 222, data: {}}
]},
{
belongTo: 99999,
data: [
{ id: 333, data: {}}
]
}
]
I would like to merge the parents and children into:
var all = [
{ id: 77777, data: {}},
{ id: 111, data: {}},
{ id: 222, data: {}},
{ id: 88888, data: {}},
{ id: 99999, data: {}},
{ id: 333, data: {}}
]
]
I have been trying to use split or merge them together and then flatten but it was always very complicated.
What will be the easiest way to achieve that merge?
My complicated way(which doesn't work):
children.map(function(child) {
var parentIndex = parents.map(function(x) {return x.id}).indexOf(child.id)
parents.splice(parentIndex + 1, 0, child.data)
})
[].concat.apply([], parents)