Sobes.tech

Frontend

/** * sumPromises ֆունկցիան իրականացրեք, որը * ընդունում է խոստումներ որպես արգումենտներ և * վերադարձնում է դրանց արդյունքների գումարը: * * Ֆունկցիան կարող է ընդունել ցանկացած քանակի արգումենտներ: * Կարող եք օգտագործել ցանկացած խոստում API: */ // Օգտագործման օրինակ const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

172

// Պետք է իրականացնել groupBy մեթոդը, որը ընդլայնում է զանգվածների ստանդարտ մեթոդները: // Մեթոդը պետք է վերադարձնի զանգվածի խմբավորված տարբերակը՝ օբյեկտ, // որի բանալիները՝ fn(arr[i]) կանչի արդյունքները յուրաքանչյուր տարրին, // իսկ արժեքները՝ զանգվածներ, որոնք պարունակում են բոլոր տարրերը սկզբնական զանգվածից այդ բանալու հետ: // այստեղ կոդը // Օրինակ 1 const array1 = [ { id: 1 }, { id: 1 }, { id: 2 } ]; const fn = (item) => item.id; console.log(array1.groupBy(fn)); // { // 1: [{ id: 1 }, { id: 1 }], // 2: [{ id: 2 }] // } // Օրինակ 2 const array2 = [1, 2, 3]; console.log(array2.groupBy(String)); // { // "1": [1], // "2": [2], // "3": [3] // } // Օրինակ 3 const array3 = [1.3, 0.5, 1.4]; console.log(array3.groupBy(Math.round)); // { // 1: [0.5, 1.4], // 3: [1.3] // }

151

/** * runOnce անվանումով օղակող ֆունկցիան իրականացնել, որը * ընդունում է ֆունկցիա և վերադարձնում նոր ֆունկցիա: Նոր * ֆունկցիան կարող է միայն մեկ անգամ կանչվել, բոլոր * հաջորդ կանչերը վերադարձնում են undefined: * * Օղակված ֆունկցիան կարող է ընդունել արգումենտներ * և վերադարձնել արդյունք: */ function runOnce(fn) { // ձեր կոդը } const logHello = (name) => { console.log(`բարև, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'բարև, Oleg!' logHelloOnce('Olga'); // undefined

125

/** * Պահանջվում է գրել ֆունկցիա, որը ընդունում է URL որպես մուտք, * կատարում է GET հարցում այդ URL- ին և վերադարձնում տվյալները (json): * Տվյալները ստանալու համար օգտագործեք fetch: * Կարող եք օգտագործել միայն Promise API: * Եթե հարցման ընթացքում սխալ տեղի ունենա, փորձեք ևս 5 անգամ: * Եթե վերջում տվյալները ստանալ չհաջողվեց, վերադարձեք սխալ "Նշված URL հասանելի չէ": */ function get(url) { // կոդ այստեղ } get(url) .then(res => console.log(res)) .catch(err => console.error(err))

114

// Ձեզ տրված է տող, որը բաղկացած է լատինական տառերից, բացատներից և նշաններից: // Տողը կոչվում է պանգրամա, եթե այն պարունակում է առնվազն մեկ անգամ յուրաքանչյուր 26 լատինական տառերից: // Հիշեք, որոշեք, արդյոք տողը պանգրամա է: const LETTERS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; function isPangram(text) { // ձեր կոդը այստեղ } console.log(isPangram('A pangram or holoalphabetic sentence is a sentence using every letter of a given alphabet at least once.')); // -> false console.log(isPangram('Waltz, bad nymph, for quick jigs vex.')); // -> true

88