Sobes.tech

Frontend

Чӣ тавр ба кор дар ширкат дӯст медоред ва чӣ чизро намехоҳед?

172

Чӣ гуна метавон алгоритми intersection-ро оптимизатсия кард?

171

Дарёе аст, ки дар он мушк ва харгӯшҳо нишастаанд. Функсияи ёфтани ҳамаи мушкҳоро дар дарахт нависед ва номҳои онҳоро баргардонед. Натоиҷи интизорӣ: ['Acorn', 'Sirsalty', 'Macadamia', 'Kernel'].

171

/** * Реализуйте метод times для числового объекта. * Функция должна принимать callback и вызывать его * заданное количество раз с индексом текущей итерации. */ Number.prototype.times = function (callback) { const n = Number(this); for (let i = 0; i < n; i++) { callback(i); } } // Примеры console.clear(); (3).times(console.log) // 0 // 1 // 2

171

Чӣ қадар вақт дар ширкат кор мекунед?

169

/** * Барои пайваст кардани сатрҳо тавассути ҷудокунанда, функсияи strjoin нависед. */ function strjoin() { // код дар ин ҷо } console.log(strjoin('a', 'b', 'c')) // 'a.b.c' console.log(strjoin('a', 'b', 'c', 'd', 'e', 'f')) // 'a-b-c-d-e-f'

168

/* Два сортирани списъка с интервали на присъствие на потребители онлайн през деня са дадени. Началото на интервала е строго по-малко от края. Трябва да изчислите интервалите, когато и двамата потребители са били онлайн. Интервалите са посочени в часове, като се счита, че могат да варират от 0 до 24. */ пресичане( [[8, 12], [17, 22]], [[5, 11], [14, 18], [20, 23]] )// [[8, 11], [17, 18], [20, 22]] пресичане( [[9, 15], [18, 21]], [[10, 14], [21, 22]] )// [[10, 14]] function пресичане(потребител1, потребител2) { // напишете вашия код тук }

168

/* Üç kod bölməsi verilir. Hər bir console.log-un nəticəsini yazmaq lazımdır. */ 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);

166

Функсияи strjoin-ро бидуни истифодаи параметрҳои rest нависед, ба ҷои онҳо объект arguments-ро истифода баред.

166

Чӣ гуна тағйир меёбад мураккабии асимптотикӣ ва истеъмоли хотира дар вазифаи camelCase → snake_case агар натиҷа бо пайваст кардани сатрҳо ба ҷои массиви аломатҳо ҷамъоварӣ шавад?

163

Чаро for...of дар TypeScript сурх нишон дода мешавад, вале for оддӣ не?

162

// Sizga lotin harflari, bo'sh joylar va tinish belgilaridan iborat satr berilgan. // Satr har bir 26 harfni kamida bir marta o'z ichiga olgan bo'lsa, pangram deb ataladi. Satr pangram yoki yo'qligini aniqlang. const LETTERS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']; function isPangram(text) { // kodingizni bu yerga yozing } console.log(isPangram(`A pangram or holoalphabetic sentence is a using every letter of a given alphabet at least once.`)); // => console.log(isPangram('Waltz, bad nymph, for quick jigs vex.'))

160

У протатыпе рэкламнай сеткі продаж рэкламных месцаў арганізаваны наступным чынам: пакупнікі загадзя называюць сваю цану, і на кожнае рэкламнае месца адказваюць, ці гатовыя яны яго купіць ці не. Неабходна рэалізаваць функцыю, якая перад продажам рэкламнага месца будзе чакаць згоды або адмовы ад пакупнікоў з высокай цаной стаўкі, а потым прадасць рэкламнае месца пакупніку з найвышэйшай цаной сярод тых, хто згадзіўся. Адказ з функцыі павінен быць настолькі хуткім, наколькі гэта магчыма. Трэба вярнуць індэкс пакупніка. Прыклады: Пакупнікі прапануюць цэны 1, 5, 10 Пакупнік з прапанаваннем 10 адказаў адмоваю Пакупнік з прапанаваннем 1 адказаў згодай // Усё яшчэ чакаем, бо можа адказаць пакупнік з цаной 5 Пакупнік з прапанаваннем 5 адказаў згодай // Выбіраем пакупніка з прапанаваннем 5 ------------ Пакупнікі прапануюць цэны 1, 5, 10 Пакупнік з прапанаваннем 10 адказаў адмоваю Пакупнік з прапанаваннем 5 адказаў згодай // Не чакаем адказу ад пакупніка з прапанаваннем 1 - яго дакладна не выберам ------------ Пакупнікі прапануюць цэны 1, 2 Пакупнік з прапанаваннем 1 адказаў адмоваю Пакупнік з прапанаваннем 2 адказаў адмоваю // Не выбіраем ні аднаго пакупніка type Buyer = { price: number, accepts: () => Promise<boolean>, } async function bestBuyer(buyers) { const sorted = buyers.map((buyer, index) => ({buyer, index})) .sort((a, b) => a.buyer.price - b.buyer.price); const promise = sorted.map(({buyer}) => buyer.accepts()); for (let i = 0; i < sorted.length; i++) { const accepted = await promise[i]; if (accepted) { return sorted[i].index; } } if (await buyers[0].accepts()) { return 0; } return -1; }

160

// Необходимо реализовать метод groupBy, расширяющий стандартные методы массивов. // Метод должен возвращать сгруппированную версию массива - объект, // в котором каждый ключ является результатом выполнения переданной функции fn(arr[i]), // а каждое значение - массив, содержащий все элементы исходного массива с этим ключом. // код здесь // Пример 1 const array1 = [ { id: 1 }, { id: 1 }, { id: 2 } ]; const fn = (item) => item.id; console.log(array1.groupBy(fn)); // { // 1: [{ id: 1 }, { id : 1 }], // 2: [{ id: 2 }] // } // Пример 2 const array2 = [1, 2, 3]; console.log(array2.groupBy(String)); // { // "1": [1], // "2": [2], // "3": [3] // } // Пример 3 const array3 = [3.3, 0.5, 1.4]; console.log(array3.groupBy(Math.round)); // { // 3: [3.3], // 1: [0.5, 1.4] // }

160

Функсияи tries(n)-ро нависед, ки функсияи aus-ро то n бор даъват мекунад: аввалин натиҷаи муваффақро бармегардонад, ва агар ҳамаи кӯшишҳо хато бошанд — хати охиринро партояд.

159

// ҳар арзиш як массив аст, ки ҳамаи унсурҳои массиви аслӣ бо ҳамин калидро дар бар мегирад. // код дар ин ҷо // Мисол 1 const array1 = [ { id: 1 }, { id: 1 }, { id: 2 } ]; const fn = (item) => item.id; console.log(array1.groupBy(fn)); // { // 1: [{ id: 1 }, { id: 1 }], // 2: [{ id: 2 }] // } // Мисол 2 const array2 = [1, 2, 3]; console.log(array2.groupBy(String));

159

Чаро барои groupBy функсияи стрелка истифода намешавад? This дар стрелка чӣ мешавад?

157

Маҳдудиятҳои гузариши рекурсивии дарахт чист? Чӣ фарқе байни гузариши дарозмуддат (DFS) ва гузариши паҳн (BFS) вуҷуд дорад? Чӣ гуна метавон гузариши дарахтро бе рекурсия амалӣ кард?

155

/* Нужно реализовать метод intersection, расширяющий стандартные методы множеств (Set). Метод принимает другое множество и возвращает новое множество, которое является пересечением исходного и переданного множеств, то есть содержит только те элементы, которые присутствуют в обеих множествах. */ // ваш код const set1 = new Set([1, 2, 3, 4]); const set2 = new Set([3, 4, 5, 6, 7, 8]); console.log(...set1.intersection(set2)) // 3 4 --- Set.prototype.intersection = function (set2) { const result = new Set(); for(const value of this) { if (set2.has(value)) result.add(value); } return result; } const set1 = new Set([1, 2, 3, 4]); const set2 = new Set([3, 4, 5, 6, 7, 8]); console.log(...set1.intersection(set2)) // 3 4

155

function any(promises) { // коди шумо дар ин ҷо }

153
/7