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