Как из многомерного обьекта, составить новый обьект из вложенных ключей
/// из этого
const tree = {
a: {
b: {
c: 'one',
h: 'two',
},
d: {
f: 'three',
},
g: 'four',
},
}
/// сделать вот такой обьект
// {
// 'a.b.c': 'one',
// 'a.b.h': 'two',
// 'a.d.f': 'three',
// 'a.g': 'four'
// }
// понаписал, но не пойму как остановиться на последней вложенности и собрать обьект заново
let a = {}
let b = ''
function getTreeValues(tree) {
for (let key in tree) {
if (typeof (tree[key]) == "object") {
b += `${key}.`
getTreeValues(tree[key]);
} else {
b += key
a[b] = tree[key]
}
}
// return a
};
console.log(getTreeValues(tree))
console.log(a)
Источник: Stack Overflow на русском