TGViewer
Maxim WebDev Maxim WebDev @maxim_webdev · 513 subscribers
Post #58 789
Мне очень нравится рассказывать про интересные задачи, которые были у меня на собесах. А еще больше нравится рассказывать про странные задачи, которые дают интервьюеры. В этом посте покажу одну из них.

Если кратко, есть функция getUsers, которая вызывается подряд много раз. Не важно сколько раз вызывается, главное что много. Вопрос: что в этом коде не так? Необходимо исправить недочет.



function getUsers() {
const users = [
{
filter: 'active',
name: 'A',
},
{
filter: 'Inactive',
name: 'A',
},
]
const appliedFilters = ['active']
const result = []

for (let i = 0; i < users.length; i += 1) {
if (appliedFilters.includes(users[i].filter)) {
result.push(users[i])
}
}

return result
}

getUsers()
getUsers()
getUsers()
// вызывается еще N раз (то есть очень много вызвовов подряд)


Если честно, я долго ломал голову, что не так. Единственное, до чего я додумался, что можно цилк for заменить на filter, будет меньше кода. Но это был неверный ответ.

Что ж, не буду томить, скажу правильный ответ. Только перед этим попробуйте сами подумать, что в этом коде не так, а после открывайте спойлер.

ОТВЕТ:

Нужно
вынести массивы users и appliedFilters за функцию getUsers. При многократном вызове функции getUsers создается много массивов, что влияет на размер выделяемой памяти для создания объектов в JS.

Если честно, интервьюер как бы прав. Но это очень странная задача. Прям очень странная. Зачем ее давать, не очень понятно. Мне сказали, что у них в проекте таких кейсов много и многочисленное создание JS-объектов влияет на производительность их приложения.

Но этот аргумент был бы логичным, если мы бы создавали прям большие массивы при каждом вызове функции. А в примере дан массив на 2 и 1 элемента. Поэтому как по мне, задача не очень доработана.


А вы как думаете, задача по условию нормальная либо странно ее давать на собеседовании? 🧐
  • ❤ 3
More from @maxim_webdev
  1. Jun 9, 2025Как найти все ред-флаги компании в процессе собеседования? 🚩🚩🚩 Многие разработчики в ко…
  2. Mar 10, 2025Какие алгоритмические задачи с собеседований я применял на коммерческих проектах? Вас тоже…
  3. Nov 29, 2024Смешная история про общение с рекрутером Мне написала рекрутер и предложила пройти собесед…
  4. Nov 19, 2024⚛️ Хочу вам рассказать про рендеринг в React через реальную ситуацию с работы. Я отдал зад…
  5. Nov 4, 2024Недавно мне предложили 10_000 RUB за то, чтобы я другому человеку на алгоритмической секци…
  6. Oct 21, 2024Помните я вам рассказывал, как рекрутер не успевала записывать мои ответы на технические в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →