Я пытаюсь преобразовать объект, который может иметь различные уровни вложенности:
const obj = {
some: {
thing: {
good: 'yo'
},
one: 'else'
},
something: {
bad: 'oy'
},
somethingtasty: 'mmm'
}
в массив объектов, содержащий исходный путь к значению и значение:
const arr = [{
path: 'some.thing.good',
value: 'yo'
}, {
path: 'some.one',
value: 'else
}, {
path: 'something.bad',
value: 'oy'
}, {
path: 'somethingtasty',
value: 'mmm'
}]
Я нашел полезный ответ на SO на похожий вопрос, касающийся объектов разной вложенности:
https://stackoverflow.com/a/2631198
Но это не решает
- a: как обрабатывать переменные вложенные глубины
- b: как обращаться с переменными ключами
Я также пытался посмотреть, есть ли у lodash метод (или методы), который может помочь, например:
https://github.com/node4good/lodash-contrib/blob/master/docs/_.object.selectors.js.md#getpath
или
https://lodash.com/docs/4.17.11#flatMapDeep
Но это не поможет, если я не знаю путь к значениям, которые мне нужно получить.
Есть ли в javascript способ проходить через объект и сохранять его ключи и значение в массиве?