How to find an object and parent object in repeatedly nested array of unknown size? Using lodash or native javascript.
Array might be something like this:
var modules = [{
name: 'Module1',
submodules: [{
name: 'Submodule1',
id: 1,
submodules: [{
name: 'Submodule11',
id: 1,
submodules: []
}, {
name: 'Submodule12',
id: 2,
submodules: [{
name: 'Submodule121',
id: 1,
submodules: []
}, {
name: 'Submodule122',
id: 2,
submodules: []
}]
}]
},
{
name: 'Submodule2',
id: 2,
submodules: []
}
]
},
{
name: 'Module2',
submodules: [{
name: 'Submodule1',
id: 3,
submodules: []
}, {
name: 'Submodule2',
id: 4,
submodules: []
}]
}
];
And let's say all the 'name' properties in array are unique.
And I want to find:
name: 'Submodule122'
I was using this function for finding parent object but it works only on first level of array:
_.find(this.modules , function(item) {
return _.some(item.submodules, { name: 'Submodule122'});
And this to find actual object, but it also works only on first level of array:
_(this.modules)
.thru(function (coll) {
return _.union(coll, _.map(coll, 'submodules'));
})
.flatten()
.find({ name: 'Submodule122'})