Проходной бал - 4
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 } ]
1 балл
Сделать функцию, которая из двух массивов ключей и значений создает ассоциативный массив или null
если массивы разной длины:
objectCombine(['name', 'surname'], ['Donald', 'Trump']) // { name: "Donald", surname: "Trump" }
objectCombine(['name', 'surname'], ['Ivan', 'Petrovich', 'Cherezzabornoguzadirischenko']) // null
2 балла
Напилите функцию, которая создает поле выбора select
или набор radio
в определенном контейнере:
choiceBuilder('someId', {default: 'Не указан', male: "Мужской", female: 'Женский'})
если someId - это тэг SELECT
, то добавляет в него option
из объекта. Иначе создает radio кнопки
3 балла
Создайте функцию, которая строит таблицу из массива массивов и позволяет редактировать любую ячейку по даблклику.
При даблклике контент ячейки подменяется на input
. По даблклику по input
измененые данные заносятся в оригинальный
массив и input
удаляется из ячейки, заменяясь измененным значением.
var arr = [[1,2],[3,4]]
tableEditor('someId', arr) //создает таблицу 2x2, каждую ячейку которой можно подредактировать. Изменения должны вноситься в arr
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 и передать в неё объект с результатом