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" куда-то пропал. Подскажите пожалуйста и по возможности, подскажите, как лучше решить такую задачку
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
array.reduceRight((acc, n) => ({ ...n, children: [ ...n.children, acc ] }), { ...obj })
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект