Разворачивание вложенного объекта

Medium
ObjectRecursionSberYandex

Реализуйте функцию flattenObject(obj), которая «раскрывает» вложенный объект в плоский, используя точечную нотацию для ключей.

flattenObject({ a: { b: { c: 1 } }, d: 2 })
// => { "a.b.c": 1, "d": 2 }

flattenObject({ x: { y: 1, z: { w: 2 } } })
// => { "x.y": 1, "x.z.w": 2 }

Примеры

Пример 1
Вход:
{ a: { b: { c: 1 } }, d: 2 }
Выход:
{"a.b.c":1,"d":2}
Пример 2
Вход:
{ x: { y: 1, z: { w: 2 } } }
Выход:
{"x.y":1,"x.z.w":2}
Ваш код - JavaScript
Результаты
Нажмите «Запуск» для выполнения кода