Sobes.tech

Frontend

Ինչպե՞ս կարելի է այլ կերպ ստանալ this-ից թվային արժեք (առանց Number(this))։

157

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

157

/* Անհրաժեշտ է իրականացնել intersection մեթոդը, որը ընդլայնում է ստանդարտ հավաքների (Set) մեթոդները: Մեթոդը ընդունում է այլ հավաք և վերադարձնում նոր հավաք, որը հանդիսանում է սկզբնական և փոխանցված հավաքների հատման արդյունքը, այսինքն՝ պարունակում է միայն այն տարրերը, որոնք առկա են երկու հավաքներում: */ // ձեր կոդը const set1 = new Set([1, 2, 3, 4]); const set2 = new Set([3, 4, 5, 6, 7, 8]); console.log(...set1.intersection(set2)) // 3 4 --- Set.prototype.intersection = function (set2) { const result = new Set(); for(const value of this) { if (set2.has(value)) result.add(value); } return result; } const set1 = new Set([1, 2, 3, 4]); const set2 = new Set([3, 4, 5, 6, 7, 8]); console.log(...set1.intersection(set2)) // 3 4

157

Գրեք sleep ֆունկցիա, որը վերադարձնում է Promise և ավարտվում է նշված միլիսեկունդների ընթացքում։

155

Ներկայացրեք, թե ինչ կլինի Promise-ների պատյանով, եթե asyncCall սխալմամբ մի քանի անգամ կանչի փոխանցված callback-ը՝ սկզբում սխալի հետ, հետո տվյալների և վերջում կրկին սխալի հետ։

154

/** * Հաշվեք compose ֆունկցիան, որը ընդունում է * փոփոխական թվով ֆունկցիաներ և վերադարձնում նոր ֆունկցիա: * Յուրաքանչյուր ֆունկցիայի արդյունքը փոխանցվում է հաջորդին: */ // Այստեղ կոդ const square = (x) => x * x; const times2 = (x) => x * 2; const sum = (a, b) => a + b; console.clear(); console.log(compose(square, times2)(2) === square(times2(2))); console.log(compose(square, times2, sum)(3, 4) === square(times2(sum(3, 4))));

153

Իրական հավելվածում որտեղ կարող է օգտակար լինել callLimit ֆունկցիան՝ հաշիվը վերականգնելու հնարավորությամբ:

152

Ի՞նչն է տարբերությունը 'key in result' ստուգման և 'result.hasOwnProperty(key)'-ի միջև։

151

Կատարեք sumPromises ֆունկցիան, որը ընդունում է խոստումներ որպես արգումենտներ և վերադարձնում է դրանց արդյունքների գումարը: Ֆունկցիան կարող է ընդունել ցանկացած քանակի արգումենտներ, կարող եք օգտագործել ցանկացած խոստում API։

151

Ինչպե՞ս կարող եք փոխարկել pseudo-massiv arguments-ը իրական զանգվածի: Նշեք մի քանի եղանակ։

150

Ինչու sleep-ի կատարման ժամանակը չի լինում հստակ 1000 և 2000 միլիսեկունդ, այլ մի փոքր ավելի? Ի՞նչն է ազդում ուշացման վրա։

149

Ի՞նչ այլ մեթոդներ գիտես Promise API-ից բացի Promise.all-ից։

148

Որոշեք, արդյոք տողը 'պանգրամա' է՝ տող, որը պարունակում է առնվազն մեկ անգամ յուրաքանչյուր այբուբենի տառը։

146

[անուն] հարցրեց: Եթե համաժամանակյա զարգացում լինի, կատարողներն ինքնուրույն պարզեցնե՞ն պայմանագրերը։

146

9. Նուսխա Վարորդության ժամանակ պրոֆեսոր Ֆլոյդը նկատեց, որ որոշ ուսանողներ փոխանակում են նշումներ: Սկզբում նա ուզում էր բոլորին տալ երկուս, բայց պրոֆեսորը բարեկամ էր, և որոշեց ուսանողներին բաժանել երկու խմբի՝ նրանց, ովքեր թույլատրում են նմուշառումը, և միայն առաջինին տալ երկուս: Պրոֆեսորը գրանցել է բոլոր ուսանողների զույգերը, որոնք փոխանակում էին նշումներ: Պետք է որոշել, արդյոք հնարավոր է ուսանողներին բաժանել երկու խմբի այնպես, որ ցանկացած փոխանակում իրականացվի մի խմբի ուսանողից մյուսի: Մուտքի ձևաչափ Առաջին տողում երկու թիվ N և M են՝ ուսանողների թիվը և փոխանակման զույգերի թիվը (1 ≤ N ≤ 10^2, 0 ≤ M ≤ N(N-1)/2): Հաջորդ M տողերում նկարագրված են ուսանողների զույգերը՝ երկու թիվ, որոնք համապատասխանում են փոխանակման ուսանողների համար: Ուսանողների համարանիշը սկսվում է 1-ից, յուրաքանչյուր զույգ նշվում է ոչ ավելի քան մեկ անգամ: Ելքի ձևաչափ Պետք է տպել պրոֆեսոր Ֆլոյդի խնդրի պատասխանը: Եթե հնարավոր է ուսանողներին բաժանել երկու խմբի, տպեք YES; հակառակ դեպքում, NO.

144

Ինչու է օգտագործվում Array.prototype.slice.call(arguments): Ինչպես են աշխատում call և apply?

144

Կրկնեք strjoin ֆունկցիան ES5-ում առանց rest օպերատորի

142

Տրված է սինխրոն ֆունկցիա և ժամանակ միլիսեկունդներում: Պետք է վերադարձնել այս ֆունկցիայի նոր տարբերակը, որի կատարմանը սահմանափակված է նշված ժամանակով: Եթե ֆունկցիան կատարվի նշված ժամանակում, խոստումը լուծվում է ստացված տվյալներով: Եթե ոչ, խոստումը մերժվում է 'time limit exceeded' տողով։

141

Ամեն մի երեք JavaScript կոդի կտորների համար որոշեք, թե ինչ կցուցադրվի կոնսոլում և բացատրեք պրիմիտիվների, օբյեկտների և հղումների վերանվանման վարքագծի տարբերությունները։

141

/** * Իրականացրեք isMonotonic ֆունկցիան, որը ընդունում է * թվերի զանգված և որոշում է, արդյոք այն * մոնոտոնիկ է (չափահաս կամ նվազող): * * @param {Array<number>} numbers - թվերի զանգված * @return {boolean} - եթե զանգվածը մոնոտոնիկ է, ապա true, հակառակ դեպքում false */ function isMonotonic(numbers) { // ձեր կոդը այստեղ }

140
/7