Спасибо. А если у меня задача преобразовать не все типы, а только определенные. Т.е., что я имею в виду.
В моем примере, я говорю, для типов Title и New, преобразование необходимо с сохранением своего расположения, как в исходном массиве, а остальные типы остаются с такой же структурой и в том же месте.
Исходный массив
const widgets = [
{
type: "Title",
data: {
title: "title1",
subTitle: "subTitle1"
}
},
{
type: "Title",
data: {
title: "title2",
subTitle: "subTitle2"
}
},
{
type: "Title",
data: {
title: "title3",
subTitle: "subTitle3"
}
},
{
type: "TitleTwo",
data: {
title: "TitleTwo title",
subTitle: "TitleTwo subTitle"
}
},
{
type: "TitleTwo",
data: {
title: "TitleTwo title",
subTitle: "TitleTwo subTitle"
}
},
{
type: "New",
data: {
title: "new title1",
subTitle: "new subTitle1"
}
},
{
type: "New",
data: {
title: "new title2",
subTitle: "new subTitle2"
}
},
{
type: "NewTitle",
data: {
title: "NewTitle title1",
subTitle: "NewTitle subTitle1"
}
},
{
type: "NewTitleTwo",
data: {
title: "NewTitleTwo title",
subTitle: "NewTitleTwo subTitle"
}
}
]
Новое состояние:
const widgetsTransform = [
{
type: "SectionTitle",
children: [
{
type: "Title",
data: {
title: "title1",
subTitle: "subTitle1"
}
},
{
type: "Title",
data: {
title: "title2",
subTitle: "subTitle2"
}
},
{
type: "Title",
data: {
title: "title3",
subTitle: "subTitle3"
}
}
]
},
{
type: "TitleTwo",
data: {
title: "TitleTwo title",
subTitle: "TitleTwo subTitle"
}
},
{
type: "TitleTwo",
data: {
title: "TitleTwo title",
subTitle: "TitleTwo subTitle"
}
},
{
type: "SectionNew",
children: [
{
type: "New",
data: {
title: "new title1",
subTitle: "new subTitle1"
}
},
{
type: "New",
data: {
title: "new title2",
subTitle: "new subTitle2"
}
}
]
},
{
type: "NewTitle",
data: {
title: "NewTitle title1",
subTitle: "NewTitle subTitle1"
}
},
{
type: "NewTitleTwo",
data: {
title: "NewTitleTwo title",
subTitle: "NewTitleTwo subTitle"
}
}
]