Ezekből a jegyekből egyetlen, megszakítás nélküli útvonal építhető fel. Az útvonalban nincsenek hurkok vagy ismétlések. Írjon egy programot, amely ugyanazokat a jegyobjektumokat adja vissza az útvonal sorrendjében. ```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
Meghatározta már a rendszer terhelését RPS-ben? Mekkora volt? Volt már tapasztalata élő kódolás formátumában történő technikai szakaszokon való részvételben?
Foglalkozott már az alkalmazás, kód vagy szolgáltatás biztonságával?
Chat alkalmazásunknak a lehető leggyorsabban kell megjelenítenie a szerverről érkező új üzeneteket. Az üzenet formátuma: interface Message { id: number text: string } Az első üzenet azonosítója 1, és minden következő üzenet az előzőnél 1-gyel nagyobb. Meg kell jelenítenünk az üzeneteket a helyes sorrendben, de a szerver nem garantálja a helyes sorrendet az alkalmazásunknak küldött üzenetek között. Idővonal: // (érkezik) [telefon] // (rajzolunk) . 1 2 3 . . 4 5 6 7 8 A megjelenítéshez használja a render függvényt: render(message)
Mesélj a Node.js-s tapasztalataidról egy projekt példáján keresztül, pontosan mit fejlesztettél benne.
/** * Egy aszinkron függvényt kell írni, * amely a megadott millisekundumig "alszik", * majd sikeresen befejeződik */
Általános JavaScript-értés: paraméterátvitel, aszinkronitás, prototípusok, hibakezelés
// Szükséges ellenőrizni a problémát két szolgáltatáson, hívásokkal: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Ha mindkét kérés true-t ad vissza - írja ki a success-t a console.log() -ba // - Ha valamelyik false-t ad vissza - írja ki a fail-t a console.log() -ba // - Ha valamelyik nem válaszol - írja ki az error-t a console.log() -ba // - Ha valamelyik 1 másodpercnél hosszabb ideig válaszol - írja ki a timeout-ot a console.log() -ba
A szerepeket illetően, a menedzsment vagy a technikai irány felé szeretnél haladni?
Meséljen az Atvintnél szerzett munkatapasztalatáról: projektek, feladatok, csapat, folyamatok.
Részt vett az API tervezésében?
/** * Egy tömb van megadva. Szükséges a páratlan számokat növekvő sorrendbe rendezni, * a páros számokat pedig a helyükön hagyni * / export function oddSort(numbers) { // a kódod itt } console.log(oddSort([2, 3, 7, 4, 6, 1, 5, 8, 9])); // [2, 1, 3, 4, 6, 5, 7, 8, 9] console.log(oddSort([2, 4, 6, 8])); // [2, 4, 6, 8] console.log(oddSort([3, 7, 1, 5, 9])); // [1, 3, 5, 7, 9] // A feladat megoldását két szolgáltatáson kell ellenőrizni, hívva: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Ha mindkét kérés true-t ad vissza, írja ki a success-t // - Ha legalább az egyik false-t ad vissza, írja ki a fail-t // - Ha legalább az egyik nem válaszol, írja ki az error-t // - Ha legalább az egyik 1 másodpercnél hosszabb ideig válaszol, írja ki a timeout-ot import { checkResult } from '...'; export async function checkResults() { const solution = 'Any answer'; const url1 = 'yandex.ru'; const url2 = 'google.com'; checkResult(url1, solution); checkResult(url2, solution); }
Foglalkozott alkalmazás telepítéssel, CI/CD-vel, konfigurációval?
// Szükséges megvalósítani a groupBy metódust, amely kiterjeszti a tömbök alapértelmezett metódusait. // A metódusnak vissza kell adnia a tömb csoportosított változatát – egy objektumot, // amelyben minden kulcs a fn(arr[i]) átmenet eredménye, // és minden érték egy tömb, amely tartalmazza az eredeti tömb összes elemét ezzel a kulccsal.
/** * Egy egész szám koordinátákkal rendelkező pontokat tartalmazó tömb. * Meg kell határozni, hogy létezik-e egy függőleges egyenes, * amely a pontokat két szimmetrikus halmazra osztja ezzel az egyenessel szemben. * Megjegyzés: A könnyebb kezelés érdekében a pontot nem [x, y] tömbként, hanem {x, y} objektumként lehet ábrázolni. */ 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) { // kód itt }
/** * Az `asyncAuth(callback)` függvény egy callback-et fogad, amelybe * átadható egy hiba (első argumentumként) és adatok * a backend-ről (második argumentumként). * asyncAuth((error, data) => {}); * * Implementálnod kell az `auth()` függvényt, * amely meghívja az `asyncAuth()`-t, de egy Promise-t ad vissza. * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }
Három kódrészlet van megadva. Minden console.log eredményét írja le. 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); // ??
/** * A `tryAuth()` függvény az `auth()`-t használja, és hiba esetén * N további próbálkozást végez. * Ha minden próbálkozás sikertelen, dobja az utolsó hibát. * * @returns {Promise} */ export function tryAuth(n) { }
Hogyan volt felépítve az együttműködésed az utolsó projektben? Agile módszerrel vagy valami más módon?
Milyen önálló döntés vagy fejlesztés miatt vagy büszke? Talán egy nagyon nehéz vagy fontos feladat?