|
@@ -0,0 +1,85 @@
|
|
|
+# Домашнее задание. Функции 2, jQ
|
|
|
+
|
|
|
+## sort
|
|
|
+
|
|
|
+Сделайте обобщенную функцию сортировки массива
|
|
|
+
|
|
|
+```javascript
|
|
|
+var persons = [
|
|
|
+ {name: "Иван", age: 17},
|
|
|
+ {name: "Мария", age: 35},
|
|
|
+ {name: "Алексей", age: 73},
|
|
|
+ {name: "Яков", age: 12},
|
|
|
+]
|
|
|
+
|
|
|
+sort("age"); //сортирует по возрасту по возрастанию
|
|
|
+sort("name", false); //сортирует по имени по убыванию
|
|
|
+```
|
|
|
+
|
|
|
+Функция позволяет отсортировать *любой набор* данных по имени поля (первый параметр). Вторым параметром идет необязательный `Boolean`, который в случае `true` делает сортировку по возрастанию, в случае `false` - по убыванию.
|
|
|
+
|
|
|
+## array map
|
|
|
+
|
|
|
+Используя Array.map приведите все строки в массиве к числу. Элементы других типов оставьте как есть:
|
|
|
+
|
|
|
+```javascript
|
|
|
+["1", {}, null, undefined, "500", 700]
|
|
|
+```
|
|
|
+
|
|
|
+должно превратиться в
|
|
|
+
|
|
|
+```javascript
|
|
|
+[1, {}, null, undefined, 500, 700]
|
|
|
+```
|
|
|
+
|
|
|
+## array reduce
|
|
|
+
|
|
|
+Получите произведение всех чисел в массиве, используя `Array.reduce`. Не обрабатывайте типы данных, не являющиеся числом.
|
|
|
+
|
|
|
+```javascript
|
|
|
+["0", 5, 3, "string", null]
|
|
|
+```
|
|
|
+
|
|
|
+результат должен быть 15
|
|
|
+
|
|
|
+## object map
|
|
|
+
|
|
|
+Напишите свою реализацию `Array.map` для **объектов**:
|
|
|
+
|
|
|
+```javascript
|
|
|
+map({name: "Иван", age: 17},function(key,value){
|
|
|
+ var result = {};
|
|
|
+ result[key+"_"] = value + "_";
|
|
|
+ return result;
|
|
|
+}) //должен вернуть {name_: "Иван_", age_: "17_"}
|
|
|
+```
|
|
|
+
|
|
|
+## jqCalculator
|
|
|
+
|
|
|
+Сделать калькулятор на jQuery, который позволяет складывать, вычитать, умножать и делить числа. Операции должны быть отдельными кнопками, так же должно быть три поля ввода - для двух операндов и для результата.
|
|
|
+
|
|
|
+## jqUpperCase
|
|
|
+
|
|
|
+Сделайте поле ввода (`input type=text`) и кнопку `upperCase`, при нажатии на которую все буквы в поле ввода превратятся в большие
|
|
|
+
|
|
|
+## jqCAPSLOCK
|
|
|
+
|
|
|
+Сделайте поле ввода, которое сразу при вводе превращает все буквы в большие. Используйте события `keydown`, `keyup`, `keypress`, `change` или другие.
|
|
|
+
|
|
|
+## jqViewablePassword
|
|
|
+
|
|
|
+Сделайте поле ввода пароля с возможностью показать пароль используя поле типа `checkbox`. Наподобие полей ввода пароля WiFi.
|
|
|
+
|
|
|
+## jqRadioCalculator
|
|
|
+
|
|
|
+Сделайте калькулятор, только вместо набора кнопок для сложения, вычитания, умножения и деления используйте `input type='radio'`
|
|
|
+
|
|
|
+## jqManyPhones
|
|
|
+
|
|
|
+Напишите код, который по нажатию кнопки `<button id='addPhone'>+</button>` добавляет поле ввода телефона. Количество таких полей ввода неограничено, все они
|
|
|
+должны находится в одном элементе `<div>`.
|
|
|
+
|
|
|
+## Черный пояс
|
|
|
+
|
|
|
+Расширьте **ManyPhones** возможностью удалять любое поле ввода телефона с помощью `<button class='delPhone'>x</button>`. Такая кнопка должна быть
|
|
|
+возле каждого поля ввода.
|