Van deze tickets kan een enkele, ononderbroken route worden gebouwd. Er zijn geen lussen of herhalingen in de route. Je moet een programma schrijven dat dezelfde ticketobjecten retourneert in de volgorde van de route. ```javascript function getRoute(tickets = []) { const cities = new Map(); for (const ticket of tickets) { cities.set(ticket.from, ticket); } const result = []; let currentCity = startcity; while (cities.has(currentCity)) { const next = cities.get(currentCity); result.push(next); currentCity = next.to; } return result; } console.clear() console.log(getRoute([ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Spb' }, ])); ```
Frontend
Heeft u de belasting van het systeem in RPS bepaald? Welke hoeveelheid? Heeft u ervaring met het doorlopen van technische fasen in een live-coding formaat?
Heeft u ooit met de beveiliging van de applicatie, code of service te maken gehad?
Onze chatapplicatie moet nieuwe berichten die vanaf de server komen zo snel mogelijk weergeven. Het bericht heeft het volgende formaat: interface Message { id: number text: string } De id van het eerste bericht is 1, en de id van elk volgend bericht is 1 groter dan die van het vorige. We moeten de berichten in de juiste volgorde weergeven, maar de server garandeert niet de juiste volgorde van de berichten die naar onze applicatie worden gestuurd. Tijdlijn: // (komt binnen) [telefoon] // (tekenen) . 1 2 3 . . 4 5 6 7 8 Gebruik de functie render om de berichten weer te geven: render(message)
Vertel over je ervaring met Node.js aan de hand van een project, wat je precies hebt ontwikkeld.
/** * Het is nodig om een asynchrone functie te schrijven, * die "slaapt" voor de opgegeven hoeveelheid milliseconden, * en daarna succesvol eindigt */
Algemeen begrip van JavaScript: parameteroverdracht, asynchroniciteit, prototypes, foutafhandeling
// Het is nodig om de oplossing van de taak te controleren op twee services door aanroepen: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Als beide verzoeken true teruggeven - toon success in console.log() // - Als een ervan false teruggeeft - toon fail in console.log() // - Als een ervan niet reageert - toon error in console.log() // - Als een ervan langer dan 1 seconde reageert - toon timeout in console.log()
Heeft u deelgenomen aan het ontwerpen van de API?
Er worden drie code-secties gegeven. Schrijf het resultaat van elke console.log. var n = 1; function f(n) { n = 3; } f(n); console.log(n); // ?? // ------------------ var obj = { a: 1 }; function f1(o) { o.a = 5; } f1(obj); console.log(obj); // ?? // ------------------ var obj = { a: 1 }; function f2(o) { o = { hello: 1 }; } f2(obj); console.log(obj); // ??
/** * De functie `asyncAuth(callback)` accepteert een callback, waarin * een fout (als eerste argument) en gegevens * van de backend (als tweede argument) kunnen worden doorgegeven. * asyncAuth((error, data) => {}); * * Je moet de functie `auth()` implementeren, * die `asyncAuth()` aanroept, maar een Promise teruggeeft. * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }
Vertel over je werkervaring bij Atvint: projecten, verantwoordelijkheden, team, processen.
/** * De functie `tryAuth()` gebruikt `auth()` en, in geval van een fout, * voert N extra pogingen uit. * Als alle pogingen falen, werpt het de laatste fout. * * @returns {Promise} */ export function tryAuth(n) { }
Heeft u ervaring met het deployen van applicaties, CI/CD, configuratie?
Wat rollen betreft, wil je richting management of technische richting gaan?
Hoe was de interactie in je laatste project opgebouwd? Via Agile of op een andere manier?
/** * Gegeven een array van punten met gehele coördinaten (x, y). * Bepaal of er een verticale lijn bestaat, * die de punten verdeelt in twee sets die spiegelbeeldig zijn ten opzichte van deze lijn. * Opmerking: Voor het gemak kan het punt worden voorgesteld als een object {x, y} in plaats van een array [x, y]. */ isVertSym([[0, 0], [0, 0], [1, 1], [2, 2], [3, 1], [4, 0], [4, 0]]) // true isVertSym([[0, 0], [0, 0], [1, 1], [2, 2], [3, 1], [4, 0]]) // false isVertSym([]) // true isVertSym([[0, 0]]) // true isVertSym([[0, 0], [10, 0]]) // true isVertSym([[0, 0], [11, 1]]) // false isVertSym([[0, 0], [1, 0], [3, 0]]) // false function isVertSym(list) { // code hier }
Vertel me over je ervaring met het schrijven van tests
// Het is noodzakelijk om de method 'groupBy' te implementeren, die de standaardmethoden van arrays uitbreidt. // De methode moet een gegroepeerde versie van de array teruggeven – een object, // waarin elke sleutel het resultaat is van het uitvoeren van de meegegeven functie fn(arr[i]), // en elke waarde een array is die alle elementen van de oorspronkelijke array met die sleutel bevat.
Heb je ervaring met het zelfstandig ontwerpen van de architectuur van een service of een deel ervan?