/** * Implementeer de functie sumPromises, die * promises als argumenten neemt en de som * van hun resultaten retourneert. * * De functie kan elk aantal argumenten accepteren. * Je kunt elke promise API gebruiken. */ // Code hier // Voorbeeld van gebruik const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3
Frontend
/* Het is nodig om de methode intersection te implementeren, die de standaardmethoden van verzamelingen (Set) uitbreidt. De methode accepteert een andere verzameling als invoer en retourneert een nieuwe verzameling, die de doorsnede is van de oorspronkelijke verzameling en de doorgegeven, dat wil zeggen, bevat alleen de elementen die in beide verzamelingen voorkomen. */ // jouw code 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
Wat zijn de beperkingen van de recursieve boomdoorloop? Hoe verschilt diepte-eerst zoeken (DFS) van breedte-eerst zoeken (BFS)? Hoe kun je een boomdoorloop zonder recursie implementeren?
Hoe kan je op een andere manier een numerieke waarde uit this halen (behalve Number(this))?
Leg uit wat er gebeurt met de Promise-omslag als asyncCall per ongeluk de meegegeven callback meerdere keren aanroept: eerst met een fout, daarna met gegevens en vervolgens opnieuw met een fout.
/** * Implementeer de functie compose, die * een variabel aantal functies accepteert en een nieuwe functie retourneert. * Het resultaat van elke functie wordt doorgegeven aan de volgende. */ // Code hier 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))));
Implementeer de functie sumPromises, die promises als argumenten accepteert en de som van hun resultaten teruggeeft. De functie kan elk aantal argumenten accepteren, je kunt elke promise API gebruiken.
Hoe kun je een pseudo-array arguments omzetten in een echte array? Noem verschillende methoden.
Welke andere methoden van de Promise API ken je naast Promise.all?
Waar in een echte applicatie zou de functie callLimit met de mogelijkheid om de teller te resetten van pas kunnen komen?
Wat is het verschil tussen 'key in result' en 'result.hasOwnProperty(key)'?
Waarom is de uitvoeringstijd van sleep niet precies 1000 en 2000 milliseconden, maar iets meer? Wat beïnvloedt de vertraging?
Waarom wordt Array.prototype.slice.call(arguments) gebruikt? Hoe werken call en apply?
9. Kopiëren Tijdens een toets merkte professor Floyd dat sommige studenten aantekeningen uitwisselden. In eerste instantie wilde hij iedereen een 2 geven, maar de professor was vriendelijk en besloot de studenten in twee groepen te verdelen: degenen die kopiëren toestaan en alleen de eerste groep een 2 geven. De professor heeft alle paren studenten die aantekeningen uitwisselden genoteerd. Het is nodig te bepalen of hij de studenten in twee groepen kan verdelen zodat elke uitwisseling van aantekeningen plaatsvindt van een student van de ene groep naar een student van de andere groep. Invoerformaat In de eerste regel staan twee getallen N en M — het aantal studenten en het aantal paren studenten die aantekeningen uitwisselden (1 ≤ N ≤ 10^2, 0 ≤ M ≤ N(N-1)/2). Vervolgens, in M regels, worden de paren van studenten beschreven: twee getallen die overeenkomen met de nummers van de studenten die aantekeningen uitwisselden (de nummering van de studenten begint bij 1, elk paar wordt niet meer dan één keer vermeld). Uitvoerformaat Het is nodig het antwoord op de taak van professor Floyd te geven. Als het mogelijk is om de studenten in twee groepen te verdelen, typ dan YES; anders, NO.
[naam] vroeg: In het geval van parallelle ontwikkeling, verduidelijkten de uitvoerders zelf de contracten?
Bepaal of een tekenreeks een 'pangram' is — een tekenreeks die elke letter van het alfabet minstens één keer bevat.
/** * Implementeer de functie isMonotonic, die * een array van getallen accepteert en bepaalt * of deze monotoon is (niet toenemend of niet afnemend). * * @param {Array<number>} numbers - array van getallen * @return {boolean} - true als de array monotoon is, anders false */ function isMonotonic(numbers) { // jouw code hier }
Vertel me over je huidige werkplek en het project
Herschrijf de functie strjoin in ES5 zonder rest-operator
Gegeven een synchrone functie en een tijd in milliseconden. Het is nodig om een nieuwe versie van deze functie terug te geven, waarvan de uitvoering beperkt is tot de opgegeven tijd. Als de functie binnen de gegeven tijd wordt uitgevoerd, wordt de belofte opgelost met de verkregen gegevens. Als dat niet gebeurt, wordt de belofte afgewezen met de string 'time limit exceeded'.