Нужно сделать трёхуровнёвое меню для интернет-магазина, которое будет открываться по клику.
Я так понимаю тут нужно использовать объект, в котором ключ будет как отдельное меню? Что-то на подобии такого нужно сделать
<%
let catalog = [
{
id: 1,
title: 'Наборы для творчества',
parent: 0
},
{
id: 2,
title: 'Научные игры',
parent: 0
},
{
id: 3,
title: 'Настольные игры',
parent: 0
},
{
id: 4,
title: 'Демонстрационные материалы',
parent: 0
},
{
id: 5,
title: 'Раздаточные материалы',
parent: 0
},
{
id: 6,
title: 'Рабочие тетради',
parent: 0
},
{
id: 7,
title: 'Плакаты и таблицы',
parent: 0
},
{
id: 8,
title: 'Оформление интерьера детского сада',
parent: 0
},
{
id: 9,
title: 'Портфели, портфолио, детские анкеты',
parent: 0
},
{
id: 10,
title: 'Для детской комнаты',
parent: 0
},
{
id: 11,
title: 'Канцтовары',
parent: 0
},
{
id: 12,
title: 'Новогодние товары',
parent: 0
},
{
id: 13,
title: 'Большие наборы для творчества',
parent: 1
},
{
id: 14,
title: 'Наборы для творчества из гипса',
parent: 1
},
{
id: 15,
title: 'Картинки из песка, блесток, пайеток',
parent: 1
},
{
id: 16,
title: 'HANDMADE - декор своими руками',
parent: 1
},
{
id: 17,
title: 'Наборы для творчества на любой вкус',
parent: 1
},
{
id: 18,
title: 'Наборы для слепков',
parent: 1
},
{
id: 19,
title: 'Гравюры',
parent: 1
},
{
id: 20,
title: 'Роспись по холсту',
parent: 1
},
{
id: 21,
title: 'Раскраски и наклейки',
parent: 1
},
{
id: 22,
title: 'Раскраски',
parent: 13
},
{
id: 23,
title: 'Альбомы с наклейками',
parent: 13
},
{
id: 24,
title: 'Наборы наклеек',
parent: 13
}
]
for(let i = 0; i < catalog.length; i++){ %>
<% if(catalog[i]['parent'] == 0) { %>
<li><%- catalog[i]['title'] %></li>
<% } else {%>
<ul>
<li><%- catalog[i]['title'] %></li>
</ul>
<% }}
%>
Вовсе не обязательно хранить его в многоуровневом массиве. Достаточно одноуровневого,и выводить с указанием некоего (условно) parent_id
. Неограниченная вложенность гарантирована :) а многомерный массив это тонны forEach
, вложенных друг в друга, или рекурсия, или ещё много чего страшного. ИМХО
Например (псевдокод):
array = [
[0] = [
'title' = 'Телефоны',
'parent_id' = NULL
],
[1] = [
'title' = 'ASUS',
'parent_id' = 0
],
[2] = [
'title' = 'Автомобили',
'parent_id' = NULL
],
[3] = [
'title' = 'Nissan',
'parent_id' = 2
],
[4] = [
'title' = 'Samsung',
'parent_id' = 0
],
[5] = [
'title' = 'Infiniti',
'parent_id' = 2
],
[6] = [
'title' = 'Galaxy Note 3',
'parent_id' = 4
]
]
Вот смотрите. У нас две корневых категории - это Телефоны и Автомобили, у них parent_id
либо равен NULL
, либо можно вообще не задавать, типа они никуда не вложены, корневые. Дальше у нас ASUS и Samsung вложены в parent_id=0
, то есть в Телефоны. parent_id
совпадает с индексом элемента, в который он вложен. Nissan и Infiniti вложены в Автомобили, parent_id=2
. Это второй уровень. И третий уровень вложенности - Galaxy Note 3, он вложен в категорию Samsung, которая вложена в корневую категорию Телефоны.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
На Chrome для Android не воспроизводится автоматическиПодскажите, пожалуйста, как исправить?