// Напишите функцию, которая возвращает новый объект,
// в котором все примитивные элементы вложенных объектов были рекурсивно "подняты"
const obj = {
a: {
b: {
c: 1,
d: 2,
e: 3,
},
f: {
g: 4,
h: 5,
},
i: 6,
j: 7,
},
};
const flattenNestedObject = (obj) => {
// Ваш код здесь
};
console.log(flattenNestedObject(obj)); // { c: 1, d: 2, e: 3, g: 4, h: 5, i: 6, j: 7 }
Решение под спойлером
const flatObject = (obj) => {
let res = {};
for (let name in obj) {
if (typeof obj[name] !== 'object') {
res[name] = obj[name];
} else {
let flatNested = flatObject(obj[name]);
for (let flatName in flatNested) {
res[flatName] = flatNested[flatName];
}
}
}
return res;
};