bootd
@bootd
Гугли и ты откроешь врата знаний!

Как вложить элементы массива друг в друга начиная с конца?

Добрый вечер, ребята))
Помогите решить задачку

https://jsfiddle.net/rxjvh1g0/2/

Дан массив, состоящий из объектов
const array = [
	{
		name: 'Заголовок 1',
		children: [],
	},
	{
		name: 'Заголовок 2',
		children: [],
	},
	{
		name: 'Заголовок 3',
		children: [],
	}
]

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


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


В голову мне пришло лишь 1 решение, выглядит оно ужасно, но до другого я не додумался. Это циклом пройтись по элементам, но с конца, вкладывая друг в друга, но что-то я напартачил с получением следующего элемента и никак не пойму, как мне решить. Объект "заголовок 2" куда-то пропал. Подскажите пожалуйста и по возможности, подскажите, как лучше решить такую задачку
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
array.reduceRight((acc, n) => ({ ...n, children: [ ...n.children, acc ] }), { ...obj })
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 10:01
500 руб./за проект
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час