123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- // 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));
|