08module.md 2.7 KB

objectToPairs

Написать функцию, которая будет принимать объект и создавать из него массив в котором пары ключ-значения будут идти по очереди (четные - ключи, нечетные - значения)

var obj = { foo: 1,
    bar: null,
    baz: undefined
}

objectToPairs(obj) // возвращает ['foo', 1, 'bar', null, 'baz', undefined]

objectSplit

Функция должна преобразовывать объект в два массива ключей и значений и возвращать объект с двумя массивами:

var obj = { foo: 1,
    bar: null,
    baz: undefined
}

objectSplit(obj) // {keys: ['foo', 'bar', 'baz'], values: [1, null, undefined]}

Используйте итерацию.

setPropertyBySelector

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

setPropertyBySelector("tr > li", 'onclick', function(){
    alert('click on tr > li')
})

setPropertyBySelector("td", 'innerHTML', 'испортим все td на странице')

scrollButtons

Создайте функцию, которая будет добавлять 4 кнопки (вверх, вниз, вправо, влево) для любого элемента cо скроллбаром (CSS overflow) и скроллить его по нажатию на эти кнопки на определенную величину.

scrollButtons(element, 50) // теперь element можно скроллить по кнопкам на 50 пикселей.

table Editor

Создайте функцию, которая будет записывать в контейнер таблицу с данными из массива с объектами наподобие http://gitlab.a-level.com.ua/gitgod/FrontendLectures/src/master/04AssociativeArraysHomeWork.md#html-th-optional. Однако кроме просто создания таблицы предусмотрите возможность редактирование ячеек таблицы. По двойному щелчку в ячейке создается input, и удаляется старый input (если он был), данные при удалении старого input из старого input должны оказываться в ячейке таблице и объекте, который был отредактирован.

tableEditor(element, persons)