Sobes.tech

Frontend

Այս տոմսերից կարելի է կառուցել միակ, անընդհատ երթուղի: Երթուղու մեջ չկա ցիկլեր կամ կրկնություններ: Դուք պետք է գրել ծրագիր, որը վերադարձնում է այդ նույն տոմսերի օբյեկտները երթուղու հաջորդականությամբ: ```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' }, ])); ```

266

Դուք սահմանեցիք համակարգի բեռը RPS-ով? Որքան է եղել: Ունե՞ք փորձ տեխնիկական փուլերը անցնելու լայվ-կոդավորման ձևաչափով։

257

Դու երբևէ պետք է զբաղվեիր հավելվածի, կոդի կամ ծառայության անվտանգությամբ?

254

Մեր զրույցի հավելվածը պետք է հնարավորինս արագ ցուցադրի սերվերից եկող նոր հաղորդագրությունները: Հաղորդագրության ձևաչափը: interface Message { id: number text: string } Առաջին հաղորդագրության id-ն 1 է, իսկ յուրաքանչյուր հաջորդ հաղորդագրության id-ն ավելի մեծ է նախորդից 1-ով: Մենք պետք է ցուցադրենք հաղորդագրությունները ճիշտ հերթականությամբ, սակայն սերվերը չի երաշխավորում ուղարկվող հաղորդագրությունների ճիշտ հերթականությունը: Ժամանակացույց: // (գալիս է) [հեռախոս] // (նկատում ենք) . 1 2 3 . . 4 5 6 7 8 Հաղորդագրությունները ցուցադրելու համար օգտագործեք render ֆունկցիան: render(message)

226

Պատմեք ձեր փորձի մասին Node.js-ով մի նախագծի օրինակով, ինչ եք հենց այն վրա զարգացրել?

191

/** * Պետք է գրել ասինխրոն ֆունկցիա, * որը կքննի նշված միլիսեկունդների քանակը, * և հետո հաջողությամբ ավարտվի */

180

JavaScript-ի ընդհանուր ըմբռնումը՝ պարամետրերի փոխանցում, ասինխրոնություն, պրոտոտիպներ, սխալների կառավարում

175

// Պահանջվում է ստուգել խնդրի լուծումը երկու ծառայություններում, կանչելով. // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Եթե երկու հարցումները վերադարձնեն true - ցուցադրեք success-ը console.log()-ում // - Եթե առնվազն մեկը false է վերադարձնում - ցուցադրեք fail-ը console.log()-ում // - Եթե առնվազն մեկը պատասխան չտա - ցուցադրեք error-ը console.log()-ում // - Եթե առնվազն մեկը պատասխան տա ավելի քան 1 վայրկյան - ցուցադրեք timeout-ը console.log()-ում

167

Ռոլերի առումով՝ ուզում եք գնալ կառավարման կողմը կամ տեխնիկական ուղղությամբ?

162

Խոսեք ձեր աշխատանքային փորձի մասին Atvint-ում՝ նախագծեր, պարտականություններ, թիմ, գործընթացներ։

161

/** * Տրված է ամբողջ թվերով կոորդինատներով կետերի զանգված: * Որոշել, արդյոք գոյություն ունի ուղղահայաց ուղի, * որը բաժանում է կետերը երկու սիմետրիկ խմբերի այդ ուղու նկատմամբ: * Նշում. Կետը կարելի է ներկայացնել ոչ որպես [x, y] զանգված, այլ որպես {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) { // կոդ այստեղ }

155

/** * Տրված է զանգված։ Պետք է դասավորել անհավասար թվերը աճող կարգով, * իսկ զույգ թվերը թողնել իրենց տեղում * / export function oddSort(numbers) { // ձեր կոդը այստեղ } 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] // Պետք է ստուգել խնդրի լուծումը երկու ծառայություններում, կանչելով՝ // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Եթե երկու հարցումները վերադարձնեն true, տպել success // - Եթե առնվազն մեկը false, տպել fail // - Եթե առնվազն մեկը չի պատասխանում, տպել error // - Եթե առնվազն մեկը պատասխանել է ավելի քան 1 վայրկյան, տպել 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); }

153

Երեք կոդի հատվածներ են տրված։ Անհրաժեշտ է գրել յուրաքանչյուր 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); // ??

152

/** * `asyncAuth(callback)` ֆունկցիան ընդունում է callback, որի մեջ * կարող է փոխանցվել սխալ (առաջին արգումենտի տեսքով) և տվյալներ * backend-ից (երկրորդ արգումենտի տեսքով): * asyncAuth((error, data) => {}); * * Դուք պետք է իրականացնել `auth()` ֆունկցիան, * որը կանչում է `asyncAuth()`, բայց վերադարձնում է Promise: * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }

152

Դուք զբաղվո՞ւմ եք ծրագրերի տեղադրմամբ, CI/CD, կարգավորումներ։

151

/** * `tryAuth()` ֆունկցիան օգտագործում է `auth()` և, սխալ լինի, * կատարում է N լրացուցիչ փորձեր: * Եթե բոլոր փորձերը ձախողվեն, նետում է վերջին սխալը: * * @returns {Promise} */ export function tryAuth(n) { }

149

// Պետք է իրականացնել groupBy մեթոդը, որը ընդլայնում է զանգվածների ստանդարտ մեթոդները: // Մեթոդը պետք է վերադարձնի զանգվածի խմբավորված տարբերակը՝ օբյեկտ, // որի յուրաքանչյուր բանալի հանդիսանում է փոխանցված fn(arr[i]) ֆունկցիայի կատարման արդյունքը, // իսկ յուրաքանչյուր արժեք՝ զանգված, որը պարունակում է բոլոր այն տարրերը, որոնք ունեն այդ բանալին։

147

Ինչպես էր կառուցված ձեր փոխգործակցությունը վերջին նախագծում: Արդյոք դա եղել է Agile-ով կամ այլ կերպ?

145

Որ ինքնուրույն որոշում կամ բարելավում եք հպարտանում? Միգուցե շատ դժվար կամ կարևոր խնդիր?

142
/2