# Задание по модулю 2: Базовые операции, функции и операции с DOM (jq или vanilla) ## reverse Напишите функцию `reverse`, которая будет менять местами все ключи и значения в объекте: ```javascript var obj = { foo: 'bar', for: 'in', } reverse(obj) // возвращает {bar: 'foo', 'in': 'for' } ``` ## unique Напишите функцию `unique`, которая будет удалять все повторы в массиве, включая совпадающие числа и числа в строках ("45" и 45 в примере ниже) ```javascript unique(["lorem", null, 5, "15", 45, null, "45", "lorem", {}, {}, 5, 15]) // должно вернуть ["lorem", null, 5, "15", 45, {}, {}] ``` ## chekboxlist Написать функцию checkboxList, которая будет создавать несколько `checkbox`-ов с `label` с текстом. Каждый новый блок (`checkbox` и `label`) должен начинаться с новой строки в контейнере ```javascript var checkboxes = ['Пол', 'Высшее образование', 'Трудоустроен'] checkboxList("checksContainer",checkboxes); //создает три чекбокса с текстами из массива (пол, наличие высшего образование и трудоустроен или нет человек на текущий момент) один под другим в контейнере с id = checksContainer ``` ## modal Сделать функцию, которая показывает модальное окно с контейнером, `id` которого передано в качестве параметра: Примерное содержимое модального окна. Вы можете использовать любое другое (например картинку, если ваша модалка - это просморт картинок) ```html ``` ```javascript modal('modal') //параметр - id div-а, который покажется в качестве содержимого модального окна ``` При запуске функции она должна: - создать полупрозрачный фоновый `div` размером с всю страницу. Используйте z-index - отцентровать и показать `div` с контентом модалки; - по клику на фоновый `div` удалять фоновый `div` и прятать `div` с контентом ## recursiveTree Напишите функцию, которая отрисовывает древовидное меню, используя `li`, `ul` или `ol`. ```javascript var tree = [1,[21,22],3,[41,[421,422]],5] recursiveTree('treeContainer',tree) ``` код выше должен создавать следующее (или схожее) дерево в **DOM** (в элементе treeContainer): ```html ``` https://repl.it/I4EL При движении мыши над элементами списка должны подсвечиваться все предки элемента и он сам. Так же можете усложнить структуру `tree` и сделать дерево ссылок (URL и текст меню в объекте качестве узла дерева, а не текст, как сейчас в `tree`)