/** * Implementați funcția sumPromises, care primește * promisiuni ca argumente și returnează suma * rezultatelor lor. * * Funcția poate accepta orice număr de argumente. * Se pot folosi orice API-uri de promisiuni. */ // Cod aici // Exemplu de utilizare const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3
Frontend
/* Este necesar să implementați metoda intersection, care extinde metodele standard ale mulțimilor (Set). Metoda primește o altă mulțime ca parametru și returnează o nouă mulțime, care este intersecția mulțimii inițiale și celei transmise, adică, conține doar elementele care sunt în ambele mulțimi. */ // codul tău 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
Ce limitări are parcurgerea recursivă a unui copac? În ce se deosebește parcurgerea în adâncime (DFS) de cea în lățime (BFS)? Cum se poate implementa parcurgerea unui copac fără recursie?
Cum se poate obține o valoare numerică din this (în afară de Number(this))?
Explică ce se întâmplă cu învelișul Promise dacă asyncCall din greșeală apelează callback-ul transmis de mai multe ori: mai întâi cu o eroare, apoi cu date și apoi din nou cu o eroare.
/** * Implementați funcția compose, care acceptă * un număr variabil de funcții și returnează o nouă funcție. * Rezultatul fiecărei funcții este transmis următoarei. */ // Cod aici 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))));
Implementați funcția sumPromises, care acceptă promisiuni ca argumente și returnează suma rezultatelor lor. Funcția poate accepta orice număr de argumente, se pot folosi orice API-uri de promisiuni.
Cum se poate transforma un pseudo-array arguments într-un array real? Numește mai multe metode.
Ce alte metode ale API-ului Promise cunoști în afară de Promise.all?
Unde într-o aplicație reală ar putea fi utilă funcția callLimit cu posibilitatea de a reseta contorul?
Care este diferența dintre verificarea 'key in result' și 'result.hasOwnProperty(key)'?
De ce timpul de execuție al sleep nu este exact 1000 și 2000 de milisecunde, ci puțin mai mult? Ce influențează întârzierea?
De ce se folosește Array.prototype.slice.call(arguments)? Cum funcționează call și apply?
9. Copiat În timpul unui examen, profesorul Floyd a observat că unii studenți schimbă notițe. La început, a vrut să le pună tuturor nota 2, dar profesorul a fost amabil și a decis să împartă studenții în două grupuri: cei care permit copierea și să pună doar primului grup nota 2. Profesorul a înregistrat toate perechile de studenți care au schimbat notițe. Este necesar să se determine dacă poate împărți studenții în două grupuri astfel încât orice schimb de notițe să se realizeze de la un student al unui grup la un student al celuilalt grup. Formatul de intrare În prima linie se află două numere N și M — numărul de studenți și numărul de perechi de studenți care schimbă notițe (1 ≤ N ≤ 10^2, 0 ≤ M ≤ N(N-1)/2). Apoi, în M linii, sunt descrise perechile de studenți: două numere corespunzătoare numerelor studenților care schimbă notițe (numerotarea studenților începe de la 1, fiecare pereche de studenți este listată nu mai mult de o dată). Formatul de ieșire Este necesar să se afișeze răspunsul la sarcina profesorului Floyd. Dacă este posibil să împartă studenții în două grupuri, se afișează YES; altfel, NO.
[nume] a întrebat: În cazul dezvoltării paralele, au clarificat executanții contractele singuri?
Determină dacă un șir de caractere este un 'pangram' — un șir care conține cel puțin o dată fiecare literă a alfabetului.
/** * Implementați funcția isMonotonic, care primește * un array de numere și determină dacă este * monoton (nu crescător sau nu descrescător). * * @param {Array<number>} numbers - array de numere * @return {boolean} - true dacă array-ul este monoton, altfel false */ function isMonotonic(numbers) { // codul tău aici }
Spune-mi despre locul tău de muncă actual și proiect
Rescrie funcția strjoin în ES5 fără operatorul rest
Dată fiind o funcție sincronă și un timp în milisecunde. Este necesar să returnați o versiune nouă a acestei funcții, a cărei execuție este limitată de timpul specificat. Dacă funcția se execută în timpul stabilit, promisiunea se rezolvă cu datele obținute. Dacă nu, promisiunea este respinsă cu șirul 'time limit exceeded'.