06FunctionsES6HomeWork.md 2.7 KB

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

ES6

Переделайте предыдущее ДЗ используя максимум возможностей ES6. Отметьте облегчение (или утяжеление) синтаксиса.

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,(key,value) => 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$"}