Sobes.tech

Бул билеттерден бир гана үзгүлтүксүз маршрут курууга болот. Маршрутта циклдер жана кайталануулар жок. Сиз ушул эле билет объекттерин маршрут боюнча тартипте кайтарган программа жазышыңыз керек. ```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' }, ])); ```

271

Сиз системанын жүктөмүн RPS менен аныктадыңызбы? Канча болду? Техникалык этаптарды лайв-коддоо форматында өтүү тажрыйбаңыз барбы?

259

Колдонмонун, коддун же кызматтын коопсуздугуна кайсы бир убакта кам көрдүңүз беле?

254

Биздин чат тиркемебиз серверден келген жаңы билдирүүлөрдү мүмкүн болушунча тезирээк көрсөтүшү керек. Билдирүүнүн форматы: interface Message { id: number text: string } Биринчи билдирүүнүн ID саны 1, жана кийинки бардык билдирүүлөрдүн ID саны мурдагыдан 1 чоң. Биз билдирүүлөрдү туура тартипте көрсөтүшүбүз керек, бирок сервер жөнөтүлгөн билдирүүлөрдүн туура тартибин кепилдебейт. Убакыт сызыгы: // (келип жатат) [телефон] // (сүрөттөйбүз) . 1 2 3 . . 4 5 6 7 8 Билдирүүлөрдү көрсөтүү үчүн render функциясын колдонуңуз: render(message)

228

Node.js менен тажрыйбаңыз тууралуу бир долбоордун мисалы менен айтып бериңиз, аны эмне үчүн иштеп чыктыңыз?

197

/** * Мындай асинхрондуу функция жазуу керек, * ал белгиленген миллисекунддарда "уйку" керек, * жана андан кийин ийгиликтүү аяктоо керек */

184

JavaScript жөнүндө жалпы түшүнүк: параметрлерди өткөрүү, асинхрондүүлүк, прототиптер, каталарды иштетүү

175

// Мушкилоти чечимин эки кызматта текшерүү үчүн чакырыңыз: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Эгер эки суроо да true кайтарса - console.log()да success деп көрсөтүңүз // - Эгер бирөө false кайтарса - console.log()да fail деп көрсөтүңүз // - Эгер бирөө жооп бербесе - console.log()да error деп көрсөтүңүз // - Эгер бирөө 1 секунддан ашык жооп берсе - console.log()да timeout деп көрсөтүңүз

173

Ролдор боюнча, менеджментке же техникалык багытка баргыңыз келеби?

166

Atvintтеги иш тажрыйбаңыз жөнүндө айтып бериңиз: долбоорлор, жоопкерчиликтер, команда, процесстер.

163

/** * Берилген массив. Тең эмес сандарды мааниси боюнча өсүүчү тартипте сорттоо керек, * ал эми туташ сандар өз орнында калсын * / 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); }

161

Үч бөлүмдөн турган код берилген. Ар бир 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); // ??

160

// Array'лердин стандарттык ыкмаларын кеңейтүүчү groupBy ыкмасын ишке ашыруу керек. // Бул ыкма массивтин топтолгон версиясын кайтару керек – объект, // анда ар бир ачкыч – fn(arr[i]) функциясынын ишке ашырылышынын жыйынтыгы, // жана ар бир мааниси – ошол ачкыч менен оригинал массивдин бардык элементтерин камтыган массив.

157

Колдонуучулардын колдонмолорун жайгаштыруу, CI/CD, орнотуу менен иштедиңизби?

157

/** * Берилген массив нүктөлөрдүн бүтүн координаттары (x, y). * Түз сызыктын бар-жогун аныктоо, * ал нүктөлөрдү ошол сызыкка салыштырмалуу симметриялуу эки топко бөлөт. * Эскертүү: ыңгайлуулук үчүн, нукта массив катары эмес, {x, y} объекти катары көрсөтүлүшү мүмкүн. */ isVertSym([[0, 0], [0, 0], [1, 1], [2, 2], [3, 1], [4, 0], [4, 0]]) // чын isVertSym([[0, 0], [0, 0], [1, 1], [2, 2], [3, 1], [4, 0]]) // жалган isVertSym([]) // чын isVertSym([[0, 0]]) // чын isVertSym([[0, 0], [10, 0]]) // чын isVertSym([[0, 0], [11, 1]]) // жалган isVertSym([[0, 0], [1, 0], [3, 0]]) // жалган function isVertSym(list) { // код ушул жерде }

155

/** * `asyncAuth(callback)` функциясы callback кабыл алат, анын ичинде * ката (биринчи аргумент катары) жана маалыматтар * backendтен (экинчи аргумент катары) өткөрүлүшү мүмкүн. * asyncAuth((error, data) => {}); * * Сиз `auth()` функциясын ишке ашырышыңыз керек, * ал `asyncAuth()` чакырып, бирок Promise кайтарат. * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }

154

/** * `tryAuth()` функциясы `auth()` колдонуп, ката болсо, * N кошумча аракет кылат. * Бардык аракеттер ийгиликсиз болсо, акыркы катаны чыгарат. * * @returns {Promise} */ export function tryAuth(n) { }

149

Акыркы долбоордо сиздин өз ара аракеттешүүңүз кандайча уюштурулду? Agile аркылуубы же башкачабы?

145

Кайсы өзүнчө чечим же жакшыртуу менен сыймыктанасыз? Мүмкүн, өтө кыйын же маанилүү тапшырма?

144
/2