Как преобразовать вложенный объект в другой вид?
Есть такой вложенный объект:
[
{
ID: 1,
VALUE: 'Телефоны и гаджеты',
CHILDREN: [
{
ID: 2,
VALUE: 'Смартфоны',
CHILDREN: [
{
ID: 2,
VALUE: 'Смартфоны iPhone'
}
]
}
]
}
]
И я хочу преобразовать его к такому виду:
{
id: 1,
name: 'Телефоны и гаджеты',
children: {
id: 2,
name: 'Смартфоны',
children: {
id: 2,
name: 'Смартфоны iPhone'
}
}
}
const data = [
{
VALUE: 'Телефоны и гаджеты',
CHILDREN: [
{
VALUE: 'Смартфоны',
CHILDREN: [
{
VALUE: 'Смартфоны iPhone',
}
]
}
]
}
]
function getProp(el) {
if (Array.isArray(el.CHILDREN)) {
getProp(el.CHILDREN[0])
}
return el
}
const result = getProp(data[0])
console.log(result)
Подскажите пожалуйста, как написать правильно рукурсивную функцию, которая пройдется по всем объектам и вернет нужную структуру?
Ответы (1 шт):
Автор решения: Anynomius
→ Ссылка
const data = [
{
ID: 1,
VALUE: 'Телефоны и гаджеты',
CHILDREN: [
{
ID: 2,
VALUE: 'Смартфоны',
CHILDREN: [
{
ID: 2,
VALUE: 'Смартфоны iPhone'
}
]
}
]
}
]
function getProp(el) {
const resultObj = {};
resultObj.id = el.ID;
resultObj.name = el.VALUE;
if (Array.isArray(el.CHILDREN)) {
resultObj.children = getProp(el.CHILDREN[0]);
}
return resultObj;
}
const result = getProp(data[0])
console.log(result)