Sobes.tech

Frontend

Nendest piletitest saab ehitada ühe pideva marsruudi. Marsruudis pole silmuseid ega kordusi. Peate kirjutama programmi, mis tagastab need samad piletite objektid marsruudi järjekorras. ```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' }, ]));

263

Kas olete määranud süsteemi koormuse RPS-is? Kui palju? Kas teil on kogemusi tehniliste etappide läbimisel live-koodimise vormis?

255

Meie vestlusrakendus peaks võimalikult kiiresti kuvama serverist saabuvad uued sõnumid. Sõnumi formaat: interface Message { id: number text: string } Esimese sõnumi ID on 1, ja iga järgmise sõnumi ID on suurem kui eelmine ühe võrra. Me peame kuvama sõnumeid õiges järjekorras, kuid server ei taga saadetud sõnumite õiget järjekorda. Ajaskaala: // (saabub) [telefon] // (joonistame) . 1 2 3 . . 4 5 6 7 8 Sõnumite kuvamiseks kasutage funktsiooni render: render(message)

221

Rääkige oma kogemusest Node.js-ga, kasutades näitena mõnda projekti, mida täpselt te selles arendasite?

191

/** * On vaja kirjutada asünkroonfunktsioon, * mis "magab" määratud millisekundite arv, * ja seejärel edukalt lõpeb */

176

JavaScripti üldine arusaam: parameetrite edastamine, asünkroonsus, prototüübid, vigade käsitlemine

175

// On vaja kontrollida ülesande lahendust kahe teenuse kaudu, kutsudes: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Kui mõlemad päringud tagastavad true - näidake success console.log()s // - Kui vähemalt üks tagastab false - näidake fail console.log()s // - Kui vähemalt üks ei vasta - näidake error console.log()s // - Kui vähemalt üks vastab kauem kui 1 sekund - näidake timeout console.log()s

167

/** * Antud on täisarvudega koordinaatidega punktide massiiv. * Määrake, kas eksisteerib vertikaaltõke, * mis jagab punktid kaheks sümmeetriliseks kogumiks selle tõkke suhtes. * Märkus: mugavuse huvides võib punkti esitada mitte massiivina [x, y], vaid objektina {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) { // kood siin }

155

/** * Funktsioon `asyncAuth(callback)` võtab vastu callbacki, kuhu * võib edastada vea (esimesena argumentina) ja andmeid * backendist (teise argumendina). * asyncAuth((error, data) => {}); * * Teil tuleb implementeerida funktsioon `auth()`, * mis kutsub `asyncAuth()` ja tagastab Promise. * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }

152

/** * Antud on massiiv. On vaja sorteerida paaritud arvud kasvavas järjekorras, * ja paaris arvud jätta oma kohtadele * / export function oddSort(numbers) { // sinu kood siin } 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] // On vaja kontrollida ülesande lahendust kahe teenuse kaudu, kutsudes: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Kui mõlemad päringud tagastavad true, väljastada success // - Kui vähemalt üks tagastab false, väljastada fail // - Kui vähemalt üks ei vasta, väljastada error // - Kui vähemalt üks vastab üle 1 sekundi, väljastada 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); }

151

Kolm koodilõiku on antud. Tuleb kirjutada iga console.log tulemused. 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); // ??

150

/** * Funktsioon `tryAuth()` kasutab `auth()` ja, kui tekib viga, * teeb N täiendavat katset. * Kui kõik katsed ebaõnnestuvad, viskab välja viimase vea. * * @returns {Promise} */ export function tryAuth(n) { }

149

// On vajalik rakendada meetod groupBy, mis laiendab massiivide standardmeetodeid. // Meetod peaks tagastama massiivi grupeeritud versiooni – objekti, // kus iga võti on funktsiooni fn(arr[i]) täitmise tulemus, // ja iga väärtus on massiiv, mis sisaldab kõiki algse massiivi elemente selle võtmaga.

147

Kuidas oli teie viimase projekti koostöö üles ehitatud? Kas see oli Agile kaudu või kuidagi teisiti?

145

Millist iseseisvat otsust või parandust sa oled uhke? Võib-olla väga keeruline või oluline ülesanne?

140
/2