// sort // Сделайте обобщенную функцию сортировки массива var persons = [{ name: "Иван", age: 17 }, { name: "Мария", age: 35 }, { name: "Алексей", age: 73 }, { name: "Яков", age: 12 }, ] function sort(array, key, increase = true) { if (increase) { array.sort(function (a, b) { if (a[key] > b[key]) { return 1; } if (a[key] < b[key]) { return -1; } return 0; }); } else { array.sort(function (a, b) { if (a[key] < b[key]) { return 1; } if (a[key] > b[key]) { return -1; } return 0; }); } return array; }; // array map // Используя Array.map приведите все строки в массиве к числу. Элементы других типов оставьте как есть let arrayMap = ["1", {}, null, undefined, "500", 700]; let arrayMap2 = arrayMap.map((item) => { if (typeof item == "string") return isNaN(parseInt(item, 10)) ? item : parseInt(item, 10); return item; }); // array reduce // Получите произведение всех чисел в массиве, используя Array.reduce. Не обрабатывайте типы данных, не являющиеся числом. let arrayReduce = ["0", 5, 3, "string", null]; let arrPow = arrayReduce.reduce((a, b) => (typeof b == "number" ? a * b : a), 1); console.log(arrPow); // object filter // Напишите свою реализацию Array.filter для объектов var phone = { brand: "meizu", model: "m2", ram: 2, color: "black", }; function objFilter(obj) { let obj2 = {}; for (let key in obj) { if (key == "color" || obj[key] == 2) { obj2[key] = obj[key]; } } return obj2; } console.log(objFilter(phone)); // object map // Напишите свою реализацию Array.map для объектов let object = { name: "Иван", age: 17 }; function map(obj) { let temp = {}; for (let i in obj) { temp[i + '_'] = i + '$'; } return temp; } console.log(map(object)) // Sum // Напишите функцию, который будет считать сумму арифметической прогрессии рекурсивно function progression( num, increment, rows) { if (rows <= 1) { return num; } return num + progression(num + increment, increment, rows - 1) } console.log(progression( 1,4, 8));