Sobes.tech

Frontend

Ushbu chiptalar bilan yagona, uzluksiz marshrut qurish mumkin. Marshrutda aylanishlar yoki takrorlanishlar yo'q. Ushbu xuddi shunday chiptalar ob'ektlarini marshrut bo'yicha ketma-ketlikda qaytaradigan dastur yozishingiz kerak. ```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' }, ])); ```

267

Siz tizimdagi yuklamani RPS da belgiladingizmi? Qancha miqdorda? Live-kodlash formatida texnik bosqichlardan o'tish tajribangiz bormi?

257

Bizning chat ilovamiz serverdan keladigan yangi xabarlarni imkon qadar tezroq ko'rsatishi kerak. Xabar quyidagi formatda: interface Message { id: number text: string } Birinchi xabarning id raqami 1, va har bir keyingi xabarning id raqami avvalgisidan 1 katta. Biz xabarlarni to'g'ri tartibda ko'rsatishimiz kerak, ammo server yuborilgan xabarlarning to'g'ri tartibini kafolatlamaydi. Vaqt jadvali: // (kelmoqda) [telefon] // (chizamiz) . 1 2 3 . . 4 5 6 7 8 Xabarlarni ko'rsatish uchun render funksiyasidan foydalaning: render(message)

226

Node.js bilan tajribangiz haqida bir loyiha misolida gapirib bering, aynan nima ishlab chiqqansiz?

197

/** * Belgilangan millisekund davomida "uxlaydigan" va keyin muvaffaqiyatli tugaydigan * asinxron funktsiya yozish kerak */

180

JavaScript haqida umumiy tushuncha: parametrlarni uzatish, asinxronlik, prototiplar, xatolarni boshqarish

175

// Muammo yechimini ikki xizmatda tekshirish uchun chaqiring: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Agar ikkala so'rov ham true qaytaradigan bo'lsa - console.log() da success deb chiqarish // - Agar biri false qaytaradigan bo'lsa - console.log() da fail deb chiqarish // - Agar biri javob bermasa - console.log() da error deb chiqarish // - Agar biri 1 sekunddan ko'proq javob bersa - console.log() da timeout deb chiqarish

169

/** * Berilgan massiv. Juft sonlarni o'z qiymatlari bo'yicha o'sish tartibida saralash va toq sonlarni o'z joylarida qoldirish kerak * / export function oddSort(numbers) { // kodingiz bu yerda } 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] // Muammo yechimini ikki xizmatda tekshirish uchun chaqirish: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Agar ikkala so'rov ham true qaytaradigan bo'lsa, success deb chiqarish // - Agar kamida biri false bo'lsa, fail deb chiqarish // - Agar kamida biri javob bermasa, error deb chiqarish // - Agar kamida biri 1 sekunddan ortiq javob bersa, timeout deb chiqarish 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); }

157

/** * Berilgan butun koordinatalarga ega nuqtalar massivlari. * Vertikal chiziq mavjudligini aniqlang, * bu nuqtalarni bu chiziqqa nisbatan simmetrik bo'lgan ikkita to'plamga bo'ladi. * Eslatma: qulaylik uchun nuqtani [x, y] massiv sifatida emas, balki {x, y} obyekti sifatida tasvirlash mumkin. */ 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) { // kod bu yerda }

155

Uchta kod bo'limi berilgan. Har bir console.log natijasini yozish kerak. 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); // ??

154

/** * `asyncAuth(callback)` funksiyasi callback qabul qiladi, unga * xato (birinchi argument sifatida) va ma'lumotlar * backenddan (ikkinchi argument sifatida) o'tkazilishi mumkin. * asyncAuth((error, data) => {}); * * Siz `auth()` funksiyasini amalga oshirishingiz kerak, * bu `asyncAuth()`ni chaqiradi, ammo Promise qaytaradi. * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }

154

// Arraylarning standart metodlarini kengaytiradigan groupBy metodini amalga oshirish kerak. // Metod, massivning guruhlangan versiyasini – ob'ektni qaytarishi kerak, // bunda har bir kalit fn(arr[i]) funksiyasining bajarilish natijasi bo'lishi kerak, // va har bir qiymat, bu kalit bilan original massivning barcha elementlarini o'z ichiga olgan massiv bo'lishi kerak.

151

/** * `tryAuth()` funksiyasi `auth()` ni ishlatadi va xato bo'lsa, * N ta qo'shimcha urinish qiladi. * Agar barcha urinishlar muvaffaqiyatsiz bo'lsa, oxirgi xatoni tashlaydi. * * @returns {Promise} */ export function tryAuth(n) { }

149

So'nggi loyihada sizning hamkorligingiz qanday tashkil etilgan edi? Agile orqali yoki boshqa qandaydir tarzda?

145

Qaysi mustaqil qaror yoki yaxshilash bilan faxrlanasiz? Ehtimol, juda qiyin yoki muhim vazifa?

144
/2