06FunctionJQHomeWork.md 4.6 KB

Домашнее задание. Функции 2, jQ

sort

Сделайте обобщенную функцию сортировки массива

var persons = [
    {name: "Иван", age: 17},
    {name: "Мария", age: 35},
    {name: "Алексей", age: 73},
    {name: "Яков", age: 12},
]

sort(persons, "age"); //сортирует по возрасту по возрастанию
sort(persons, "name", false); //сортирует по имени по убыванию

Функция позволяет отсортировать любой набор данных по имени поля (второй параметр). Третьим параметром идет необязательный Boolean, который в случае true делает сортировку по возрастанию, в случае false - по убыванию. По умолчанию (без третьего параметра) происходит сортировка по возрастанию.

array map

Используя Array.map приведите все строки в массиве к числу. Элементы других типов оставьте как есть:

["1", {}, null, undefined, "500", 700]

должно превратиться в

[1, {}, null, undefined, 500, 700]

array reduce

Получите произведение всех чисел в массиве, используя Array.reduce. Не обрабатывайте типы данных, не являющиеся числом.

["0", 5, 3, "string", null]

результат должен быть 15

object filter

Напишите свою реализацию Array.filter для объектов:

var phone = {
    brand: "meizu",
    model: "m2",
    ram: 2,
    color: "black",
};

filter(phone,function(key,value){
    return (key == "color" || value == 2);
});

должно вернуть

{
    ram: 2,
    color: "black",
}

Для удаления пары ключ-значение используйте delete.

object map

Напишите свою реализацию Array.map для объектов:

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>.

jqDocumentReady

Перенесите код предыдущих заданий в $(document).ready, измените место подключения JS кода в HTML<head>).

Черный пояс

Расширьте ManyPhones возможностью удалять любое поле ввода телефона с помощью <button class='delPhone'>x</button>. Такая кнопка должна быть возле каждого поля ввода.