Как из многомерного обьекта, составить новый обьект из вложенных ключей
/// из этого
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)
Ответы (1 шт):
Автор решения: UserTest013
→ Ссылка
const tree = {
a: {
b: {
c: 'one',
h: 'two',
},
d: {
f: 'three',
},
g: 'four',
},
}
function getTreeValues(tree, result = {}, path = '') {
for (let key in tree) {
const resultKey = path ? `${path}.${key}` : key;
if (typeof(tree[key]) == "object") {
result = getTreeValues(tree[key], result, resultKey);
} else {
result[resultKey] = tree[key];
}
}
return result;
};
console.log(getTreeValues(tree))