JSFiddle - React, Tailwind, and code Playground
by Ed Bulikyan
JavaScript
const answer = [
{ "style": "header", "text": "Как это работает" },
{ "style": "normal", "text": "Для этого есть 5 способов:" },
{ "style": "list", "text": "С помощью ВТБ Онлайн" },
{ "style": "list", "text": "Переводом по номеру телефона" },
{ "style": "list", "text": "Переводом с карт и счетов других банков по номеру карты" },
{ "style": "header", "text": "Для этого нужно соблюдать два условия:" },
{ "style": "list", "text": "Через банкоматы с NFC и функцией внесения наличных" },
{ "style": "list", "text": "В обычной кассе в любом отделении ВТБ" }
];
const prepared = [];
answer.forEach(({ style, text }) => {
const isListStyle = style === 'list';
const pIdx = prepared.length - 1;
const previous = prepared?.[pIdx];
if (isListStyle && previous?.style === 'list') {
prepared[pIdx].text = [ ...previous?.text, text ];
} else {
prepared.push({
style,
...(isListStyle ? { text: [text] } : { text }),
});
}
});
console.log({ prepared });