08module.md 3.1 KB

Модуль

extend

Сделать функцию extend, которая добавляет один ассоциативный массив во второй:

var person = {name: "Иван", age: 17};

var extendedPerson = extend(person, {surname: "Иванов", fatherName: "Иванович"});
console.log(extendedPerson); //{name: "Иван", age: 17, surname: "Иванов", fatherName: "Иванович"}

copy

Сделайте функцию copy, которая будет копировать ключи и значения объекта в новый объект. Копирование должно проверять типы данных, и делать копии вложенных массивов. Вложенные объекты не копируются (просто присваиваются)

menuBuilder

Скреативьте функцию menuBuilder, которая из структуры

var menu = [{text: "google", href: "http://google.com"},
            {text: "ebay", href: "http://ebay.com"},
            {text: "ya", href: "http://ya.ru"},
];

создает меню используя ul, li, a в определенном контейнере. id контейнера передается в качестве параметра:

    <body>
        ...
        <div id='menuContainer'>
        </div>
        ...
    </body>
menuBuilder("menuContainer", menu); //построить меню в элементе с id "menuContainer".

Вы можете создавать элементы любым удобным способом (строка, DOM, jQuery)

gallery

Напилите функцию, которая создает галерею картинок в определенном контейнере. В качестве параметра передавайте id контейнера и массив со строками ссылок на картинки:

gallery("galleryContainer",["https://static33.cmtt.ru/paper-media/fd/92/e5/0479e08f8e852d.png", "http://s00.yaplakal.com/pics/pics_original/1/9/4/3736491.jpg"])

В идеале у вас должна быть стрелки вперед и назад, по клику на которые происходит смена картинки (клик на самой картинке - тоже удобно). Эффекты добавить по вкусу.

multiplyTable

Функция создает таблицу умножения в переданном id контейнере, размером NxN, в которой прямоугольник слева вверх от курсора мыши (включая курсор) выделен другим цветом и ячейки пронумерованы по порядку (слева направо, сверху вниз). Желательно иметь заголовки таблицы с числами (1..N) другим стилем. Заголовки не входят в подсвеченный прямоугольник.