{
let flatElements = [];
const recursiveFunc = (data, pathElements) => {
_.forEach(data, (value, key) => {
pathElements.push(key);
if (_.isObject(_.find(value, () => true))) {
recursiveFunc(value, pathElements);
} else {
flatElements.push(_.concat(pathElements, _.map(value, field => field)));
}
pathElements.splice(-1, 1);
})
}
recursiveFunc(dataMap, []);
return flatElements;
}