У меня есть массивы глубоко вложенных объектов. Я хотел бы написать функцию для извлечения произвольных дочерних объектов из этих массивов. В некоторых случаях значения вложенных свойств являются значениями и объектами, в других случаях они являются массивами.
Примеры массивов ниже:
[{parent: {level1: {level2: 'data'}}}]
[{parent: {level1: [{level2: {...}}, {level2: {...}}, {level2: {...}}]}}]
[{parent: {level1: [{level2: {level3: 'data'}}, {level2: {..}}, {level2: {..}}]}}]
Вызов функции извлечения на таком массиве должен привести к массиву объектов, которые нас интересуют.
Примеры вызова функции и ее результатов для приведенных выше массивов примеров:
extractChildren(source, 'level2') = [{level2: 'data'}]
extractChildren(source, 'level2') = [{level2: {...}, level2: {...}, level2: {...}]
extractChildren(source, 'level3') = [{level3: 'data'}]
Есть ли сжатый способ достичь этого с помощью lodash
или я должен использовать обычный JavaScript для итерации через свойства?
P.S. Подумайте об этом как эквивалент XPath select all nodes with the name "nodename"