// ES6 // a let a = text => alert(text); // cube let cube = (a) => a * a * a; // avg2 let avg2 = (a, b) => (a + b) / 2; // sum3 let sum3 = (a = 0, b = 0, c = 0) => a + b + c; // intRandom let intRandom = (a = 0, b = 0) => Math.round(Math.random() * (b - a)) + a; // greetAll let greetAll = (...arguments) => { for (let i in arguments) { alert('"' + 'Hello' + ' ' + arguments[i] + '"'); } } // sum let sum = (...arguments) => { let sum = 0; for (let i = 0; i < arguments.length;i++) { sum += arguments[i]; } return sum; } // sort function byField(field, order) { let collator = new Intl.Collator(["en", "ru"], { numeric: true }) order = order ? 1 : -1; return function(a, b) { return order * collator.compare(a[field], b[field]); } } let users = [{ name: "Иван", age: 17, }, { name: "Мария", age: 35, }, { name: "Алексей", age: 73, }, { name: "Яков", age: 12, }] users.sort(byField('age', true)); //сортирует по возрасту по возрастанию users.sort(byField('name', true)); //сортирует по имени по убыванию // array map let Array = ["1", {}, null, undefined, "500", 700]; let result = Array.map(function(item) { let number = parseInt(item); return isNaN(number)? item : number; }) console.log(result); // array reduce let arr = ["0", 5, 3, "string", null]; let result = arr.reduce(function(previousValue, currentValue) { return typeof currentValue == 'number' ? previousValue * currentValue : previousValue; },1); console.log(result); // object filter function filter(obj, callback) { let mainObj = {}; for(let key in obj) { if (callback(key, obj[key])) { mainObj[key] = obj[key]; } } return mainObj; } let phone = { brand: "meizu", model: "m2", ram: 2, color: "black", } let outcome = filter(phone,(key,value) => key == "color" || value == 2); console.log(outcome); // object map function map(object, callback) { let obj = {}; for(let key in object) Object.assign(obj,callback(key, object[key])); return obj; } let obj = map({name: 'Иван', age: 17}, function(key, value) { let result = {}; result[key+"_"] = value + "$"; return result; }) console.log(obj); //возвращает {name_: "Иван$", age_: "17$"} // Sum // pешение с помощью цикла function sum(n) { let sum = 0; for (let i = 1;i <= n;i++) { sum += i; } return sum; } // or // pешение через рекурсию function sum(n) { if (n == 1) return 1; return n + sumTo(n - 1); }