Iš šių bilietų galima sukurti vieną nuolatinę maršrutą. Maršrute nėra kilpų ar pasikartojimų. Reikia parašyti programą, kuri grąžina tuos pačius bilietų objektus pagal maršruto seką. ```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
Ar kada nors teko rūpintis programos, kodo ar paslaugos saugumu?
Ar nustatėte sistemos apkrovą RPS? Kiek? Ar turite patirties techninių etapų perėjime live-kodavimo formatu?
Mūsų pokalbių programa turi rodyti naujausias žinutes, kurios gaunamos iš serverio, kiek įmanoma greičiau. Žinutės formatas: interface Message { id: number text: string } Pirmosios žinutės ID yra 1, o kiekvienos sekančios žinutės ID yra didesnis už ankstesnės 1. Mums reikia rodyti žinutes teisinga tvarka, tačiau serveris neapsaugo teisingos siųstų žinučių tvarkos. Laiko juosta: // (atkeliauja) [telefonas] // (braižome) . 1 2 3 . . 4 5 6 7 8 Norėdami rodyti žinutes, naudokite funkciją render: render(message)
Papaskinkite apie savo patirtį su Node.js, pateikdami pavyzdį iš kokio nors projekto, ką tiksliai jame kūrėte?
/** * Reikia parašyti asinchroninę funkciją, * kuri "miegos" nurodytą milisekundžių kiekį, * ir tada sėkmingai užbaigs */
Bendra JavaScript supratimo: parametrų perdavimas, asinchroniškumas, prototipai, klaidų tvarkymas
// Reikia patikrinti užduoties sprendimą dviejose paslaugose, iškviečiant: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Jei abi užklausos grąžina true - išveskite į console.log() success // - Jei bent viena grąžina false - išveskite į console.log() fail // - Jei bent viena neatsako - išveskite į console.log() error // - Jei bent viena atsako ilgiau nei 1 sekundę - išveskite į console.log() timeout
Dėl vaidmenų, norėtumėte eiti valdymo ar techninio kryptimi?
Papaskinkite apie savo darbo patirtį Atvint: projektai, atsakomybės, komanda, procesai.
Ar dalyvavote API projektavime?
/** * Duotas sveikųjų taškų masyvas (x, y). * Nustatyti, ar egzistuoja vertikali tiesė, * kuri padalija taškus į du simetriškus pagal šią tiesę rinkinius. * Pastaba: patogumui tašką galima vaizduoti ne kaip masyvą [x, y], o kaip objektą {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) { // kodas čia }
/** * Funkcija `asyncAuth(callback)` priima callback, į kurį * gali būti perduota klaida (pirmuoju argumentu) ir duomenys * iš backend'o (antruoju argumentu). * asyncAuth((error, data) => {}); * * Turite įgyvendinti funkciją `auth()`, * kuri kviečia `asyncAuth()`, bet grąžina Promise. * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }
Ar dirbote programų diegimu, CI/CD, konfigūracija?
/** * Duotas masyvas. Reikia surūšiuoti nelyginius skaičius didėjimo tvarka, * o lyginius palikti savo vietose * / export function oddSort(numbers) { // jūsų kodas čia } 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] // Reikia patikrinti užduoties sprendimą dviejose paslaugose, iškviečiant: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Jei abi užklausos grąžina true, išvesti success // - Jei bent viena grąžina false, išvesti fail // - Jei bent viena neatsako, išvesti error // - Jei bent viena atsako ilgiau nei 1 sekundę, išvesti timeout 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); }
Du kodų skyriai duoti. Reikia parašyti kiekvieno console.log rezultatą. 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); // ??
/** * Funkcija `tryAuth()` naudoja `auth()` ir, jei įvyksta klaida, * atlieka N papildomų bandymų. * Jei visi bandymai nepavyksta, meta paskutinę klaidą. * * @returns {Promise} */ export function tryAuth(n) { }
// Reikia įgyvendinti metodą groupBy, kuris išplečia standartinius masyvų metodus. // Metodas turi grąžinti grupuotą masyvo versiją – objektą, // kuriame kiekvienas raktas yra funkcijos fn(arr[i]) vykdymo rezultatas, // o kiekviena reikšmė – masyvas, kuriame yra visi pradinio masyvo elementai su šiuo raktu.
Kaip buvo suorganizuotas jūsų bendradarbiavimas paskutiniame projekte? Per Agile ar kitaip?
Koki savarankiškas sprendimas ar patobulinimas jumyse didžiuojatės? Galbūt labai sudėtingas ar svarbus uždavinys?