/* Сортировка */ var persons = [ {name: "Иван", age: 17}, {name: "Мария", age: 35}, {name: "Алексей", age: 73}, {name: "Яков", age: 12}, ] function sort(array, field, order = true) { let arrSorted = array.sort(function (a, b){ if (a[field] > b[field]) { return order ? 1 : -1; } else{ return order ? -1 : 1; } }) return arrSorted } sort(persons, 'age', false) /* array map */ let arr = ["1", {}, null, undefined, "500", 700] let arr1 = arr.map(x => typeof x === 'string' ? +x : x) console.log(arr1) /* array reduce */ let arr2 = ["0", 5, 3, "string", null]; let arr3 = arr2.filter(x => typeof x === 'number').reduce((a, b) => a *= b) console.log(arr3) /* object filter */ var phone = { brand: "meizu", model: "m2", ram: 2, color: "black", }; filter(phone, (key, value) => key == "color" || value == 2); function filter(obj, validator) { let object = {}; for (let key in obj) { if (validator(key, obj[key])) { object[key] = obj[key]; } } return object; } /* object map */ map({name: "Иван", age: 17},function(key,value){ var result = {}; result[key+"_"] = value + "$"; return result; }) function map(obj, validator) { let object = {} for (key in obj) { object = {...object, ...validator(key, obj[key])} } return object } /* Рекурсия: sum */ function progression(n) { if (n === 0) { return 0 } else { return n + progression(n - 1) } }