module2_FE10.md 4.0 KB

Модуль

Проходной бал - 4

objectValues

1 балл

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

var notebook = {
    brand: "HP",
    type:  "440 G4",
    model: "Y7Z75EA",
    ram: 4,
    size: "14",
    weight: 1.8,
    resolution: {
        width: 1920,
        height: 1080
    },
};

objectValues(notebook) //возвращает ["HP", "440 G4", "Y7Z75EA", 4, "14", 1.8, { width: 1920, height: 1080 } ]

objectCombine

1 балл

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


objectCombine(['name', 'surname'], ['Donald', 'Trump']) // { name: "Donald", surname: "Trump" }
objectCombine(['name', 'surname'], ['Ivan', 'Petrovich', 'Cherezzabornoguzadirischenko']) // null

choiceBuilder

2 балла

Напилите функцию, которая создает поле выбора select или набор radio в определенном контейнере:

choiceBuilder('someId', {default: 'Не указан', male: "Мужской", female: 'Женский'})

если someId - это тэг SELECT, то добавляет в него option из объекта. Иначе создает radio кнопки

tableEditor

3 балла

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

var arr = [[1,2],[3,4]]
tableEditor('someId', arr) //создает таблицу 2x2, каждую ячейку которой можно подредактировать. Изменения должны вноситься в arr

formBuilder

4 балла

Накривотивьте функцию, которая из объекта сделает форму в контейнере someId

formBuilder('someId', {
    login: {type: 'text',
            placeholder: 'Логин',
            validator: function(element){
                return element.value.length > 2;
            }},
    email: {type: 'email',
            placeholder: 'Мыло',
            validator: function(element){
                return element.value.indexOf('@') > -1;
            }},
    password1 : {type: 'password',
            placeholder: 'Пароль',
            validator: function(element, obj){
                return element.value == obj.password2;
            }},
    password2 : {type: 'password',
            placeholder: 'Пароль еще раз',
            validator: function(element, obj){
                return element.value == obj.password1;
            }},
    }, function(result){
        console.log(result)
        alert('спасибо за заполнение');
    })

Функция должна создавать поля ввода с placeholder, и кнопку сохранения. По кнопке функция должна проверять все валидаторы, и подсвечивать ошибочное поле красным фоном. В валидаторы передается текущий элемент и объект с текущими значениями полей. Когда валидация успешна, функция должна вызвать третий параметр - функцию-callback и передать в неё объект с результатом