Как из плоского объекта сделать вложенный?

Есть плоский объект, например:

{
  'foo.bar.id': 4,
  'abc': 'helloworld'
}

Его ключи представляют собой последовательность ключей вложенного объекта, по которой можно извлечь соответствующее значение. Т.е., {'foo.bar.id': 4} соответствует {foo: {bar: {id: 4}}}.

Как превратить плоский объект во вложенный?
  • Вопрос задан
  • 294 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const createNestedObj = plainObj =>
  Object.entries(plainObj).reduce((acc, [ path, val ]) => {
    const keys = path.split('.');
    const key = keys.pop();
    keys.reduce((p, c) => p[c] ??= {}, acc)[key] = val;
    return acc;
  }, {});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы