diff --git a/js-core/homeworks/homework-16/index.html b/js-core/homeworks/homework-16/index.html
new file mode 100644
index 0000000..3bdba61
--- /dev/null
+++ b/js-core/homeworks/homework-16/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+ Home work 16
+
+
+
+
+
+
\ No newline at end of file
diff --git a/js-core/homeworks/homework-16/src/main.js b/js-core/homeworks/homework-16/src/main.js
new file mode 100644
index 0000000..b7c39d6
--- /dev/null
+++ b/js-core/homeworks/homework-16/src/main.js
@@ -0,0 +1,167 @@
+/*
+ 0 Алгоритмы
+ Реализуйте функцию которая будет превращать трехмерный массив
+ в двухмерный, а если массив двухмерный, тогда в трехмерный массив
+
+ // solution([ [1, 'a'], [2, 'b'], [3, 'c'] ]) => [ [1, 2, 3], [a, b, c] ]
+ // solution([ [1, 3, 5], [2, 4, 6] ]) => [ [1, 2], [3, 4], [5, 6] ]
+ // solution([[]]) => []
+ [ [ [ ] ] ] = [ [] ]
+
+
+ ИСПОЛЬЗУЙТЕ МЕТОДЫ МАССИВОВ !
+ */
+
+const solution = arr => {
+ return arr.reduce( (acc,value) => {
+ value.forEach( (item,index) => {
+ if(typeof acc[index] === 'undefined'){
+ acc[index] = [];
+ }
+ acc[index].push(item);
+ });
+ return acc;
+ },[]);
+};
+
+console.log(solution([[1, 'a'], [2, 'b'], [3, 'c']]));
+console.log(solution([ [1, 3, 5], [2, 4, 6] ]));
+console.log(solution([[]]));
+console.log(solution([[[]]]));
+
+
+
+
+/*
+ Визуализируйте массив, если в коллекции есть свойство
+ children,
+ тогда создайте вложенный лист
+
+ name - свойство h1
+ children ul -> li
+
+ Используйте innerHTML
+
+ */
+
+
+
+/*
+
+Main
+
+ Catalog
+ -
+
+
+*/
+
+
+const navigation = [
+ {name: 'Главная'},
+ {
+ name: 'Каталог',
+ children: [
+ {
+ name: 'Компьютеры',
+ children: [{name: 'Ноутбуки'}, {name: 'Планшеты'}]
+ }
+ ]
+ },
+ {name: 'Профиль'}
+];
+
+const visualArray = list => {
+
+ const liItems = list.map(item =>
+ `-
+
+ ${item.name}
+
+
+ `
+ ).join('');
+
+ let createUlElement = list => {
+
+ if(!list){
+ return '';
+ }
+
+ const liItems = list.map(item =>
+ `-
+
+ ${item.name}
+
+ ${createUlElement(item.children)}
+ `
+ ).join('');
+
+ return `
+
+ `;
+ }
+
+ return createUlElement(list);
+}
+
+const vizualizedBlock = document.createElement('div');
+document.body.appendChild(vizualizedBlock)
+vizualizedBlock.innerHTML = visualArray(navigation);
+// console.log(visualaze(navigation));
+
+
+/* ПРИЛОЖЕНИЕ */
+// Добавьте скрипт который будет рисовать всю страницу с таблицей.
+// https://github.com/aleksandra-maslennikova/telephone-book
+// innerHTML должно быть максимум
+
+/* ТЕСТ */
+
+/*
+* Добавьте реальных вопросов про JavaScript с вариантами
+* ответов
+* */
+
+// 3. При нажатии на кнопку если были выбраны правильные ответы,
+// отображайте "ПРАВИЛЬНО" или не правильно
+// или отображайте значек X или галочку, возле вопроса
+
+
+
+/* @SUPER-FRONT */
+
+/*
+* 4. По нажатию на кнопку(проверить) отобразится "модальное" окно в котором отобразится
+* весь тест с отображенными правильными ответами(обозначьте их) и неправильными(тоже обозначьте)
+* Отобразите количество правильных и неправильных ответов
+* счетчик
+
+* У модального окна будет 2 кнопки "пересдать" и "отправить"
+* *
+* Если все ответы правильные, кнопка пересдать не активна
+* disabled
+*
+* По нажатию отправить, модальное окно закрывается и на экране надпись "ваши ответы успешно
+* отправлены"
+*
+* --- Если все ответы правильные отобразите картинку
+*
+* По нажатию на пересдать - появляется снова наш тест сначала
+*
+* @Super-FRONT @ 2
+
+* При загрузке странице добавьте таймер отсчета с милисекундами -> В модальном окне отобразите
+* количество затраченного времени на тест
+*
+* */