08module.md 3.0 KB

objectToPairs (1)

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

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

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

objectSplit (1)

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

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

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

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

setPropertyBySelector (2)

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

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

setPropertyBySelector("td", 'innerHTML', 'испортим все td на странице')
setPropertyBySelector("h1", 'innerText', 'испортим все заголовки на странице')

scrollButtons (3)

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

var element = document.getElementById('someId'); //у вас должен быть где-то элемент с id=someId и overflow: auto или hidden
scrollButtons(element, 50) // теперь element можно скроллить по кнопкам на 50 пикселей.

table Editor (4)

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

tableEditor(element, persons)