JSFiddle - React, Tailwind, and code Playground

JavaScript

const obj = {
	name: 'Заголовок 4',
	children: [],
}

const array = [
	{
		name: 'Заголовок 1',
		children: [],
	},
	{
		name: 'Заголовок 2',
		children: [],
	},
	{
		name: 'Заголовок 3',
		children: [],
	}
]

const arrayLength = array.length

for (let i = arrayLength; i > 0; i--) {	
	if (i === arrayLength) {
		array[i-1].children.push(obj)
	} else {
		array[i-1].children.push(array[i+1])
	}
}

console.log(array[0])


// Нужный результат
/* {
	name: 'Заголовок 1',
	children: [
		{
			name: 'Заголовок 2',
			children: [
				{
					name: 'Заголовок 3',
					children: [
						{
							name: 'Заголовок 4',
							children: [],
						}
					]
				}
			]
		}
	]
} */