Чӣ тавр ба кор дар ширкат дӯст медоред ва чӣ чизро намехоҳед?
Frontend
Чӣ гуна метавон алгоритми intersection-ро оптимизатсия кард?
Дарёе аст, ки дар он мушк ва харгӯшҳо нишастаанд. Функсияи ёфтани ҳамаи мушкҳоро дар дарахт нависед ва номҳои онҳоро баргардонед. Натоиҷи интизорӣ: ['Acorn', 'Sirsalty', 'Macadamia', 'Kernel'].
/** * Реализуйте метод 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
Чӣ қадар вақт дар ширкат кор мекунед?
/** * Барои пайваст кардани сатрҳо тавассути ҷудокунанда, функсияи 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'
/* Два сортирани списъка с интервали на присъствие на потребители онлайн през деня са дадени. Началото на интервала е строго по-малко от края. Трябва да изчислите интервалите, когато и двамата потребители са били онлайн. Интервалите са посочени в часове, като се счита, че могат да варират от 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) { // напишете вашия код тук }
/* Üç 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);
Функсияи strjoin-ро бидуни истифодаи параметрҳои rest нависед, ба ҷои онҳо объект arguments-ро истифода баред.
Чӣ гуна тағйир меёбад мураккабии асимптотикӣ ва истеъмоли хотира дар вазифаи camelCase → snake_case агар натиҷа бо пайваст кардани сатрҳо ба ҷои массиви аломатҳо ҷамъоварӣ шавад?
Чаро for...of дар TypeScript сурх нишон дода мешавад, вале for оддӣ не?
// 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.'))
У протатыпе рэкламнай сеткі продаж рэкламных месцаў арганізаваны наступным чынам: пакупнікі загадзя называюць сваю цану, і на кожнае рэкламнае месца адказваюць, ці гатовыя яны яго купіць ці не. Неабходна рэалізаваць функцыю, якая перад продажам рэкламнага месца будзе чакаць згоды або адмовы ад пакупнікоў з высокай цаной стаўкі, а потым прадасць рэкламнае месца пакупніку з найвышэйшай цаной сярод тых, хто згадзіўся. Адказ з функцыі павінен быць настолькі хуткім, наколькі гэта магчыма. Трэба вярнуць індэкс пакупніка. Прыклады: Пакупнікі прапануюць цэны 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; }
// Необходимо реализовать метод 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] // }
Функсияи tries(n)-ро нависед, ки функсияи aus-ро то n бор даъват мекунад: аввалин натиҷаи муваффақро бармегардонад, ва агар ҳамаи кӯшишҳо хато бошанд — хати охиринро партояд.
// ҳар арзиш як массив аст, ки ҳамаи унсурҳои массиви аслӣ бо ҳамин калидро дар бар мегирад. // код дар ин ҷо // Мисол 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));
Чаро барои groupBy функсияи стрелка истифода намешавад? This дар стрелка чӣ мешавад?
Маҳдудиятҳои гузариши рекурсивии дарахт чист? Чӣ фарқе байни гузариши дарозмуддат (DFS) ва гузариши паҳн (BFS) вуҷуд дорад? Чӣ гуна метавон гузариши дарахтро бе рекурсия амалӣ кард?
/* Нужно реализовать метод 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
function any(promises) { // коди шумо дар ин ҷо }