Я думаю об оптимальном способе преобразования объекта с помощью lodash.
Я хочу сохранить древовидную структуру, но указать путь как массив или объединенную строку.
{
a: 1,
b: {
a: 1,
b: {
q: 1,
g: 1
},
c: 1
},
e: 1
}
до
{
a: { path:['a'], value: 1 },
b: {
a: { path:['b', 'a'], value: 1 },
b: {
q: { path:['b', 'b', 'q'], value: 1 },
g:{ path:['b','b','g'], value: 1 }
},
c: { path:['b','c'], value: 1 }
},
e: { path:['e'], value: 1 }
}
У меня есть эта версия:
const deeply = (map) => (obj, fn) =>
map(_.mapValues(obj, (v) => {
return _.isPlainObject(v) ? deeply(map)(v, fn) : v;
}), fn);
Есть идеи?