TGViewer
Вёрстка сайтов | HTML, CSS, JS Вёрстка сайтов | HTML, CSS, JS @free_html_lessons · 4.5K subscribers
Post #2810 556
Мемоизация

Реализуйте функцию memoize, которая принимает функцию fn и возвращает её мемоизированную версию.
Мемоизированная функция никогда не должна вызывать fn дважды для одного и того же набора аргументов — она запоминает результат первого вызова и возвращает его из кеша для всех последующих.
Два объекта с разной ссылкой, но одним и тем же набором полей и значений, считаются одинаковыми.

Формат ввода
Вы должны экспортировать функцию memoize, которая в качестве аргумента принимает функцию fn.
Функция fn в качестве аргументов может принимать примитивы (строки, числа, булевы значения), массивы и объекты.
Значения, которые нельзя сериализовать через JSON.stringify (например, функции, undefined, Symbol, BigInt, циклические ссылки и т. п.), передаваться не будут.
Два массива с одинаковыми элементами, расположенными в разном порядке, считаются разными. Например, [1, 2] и [2, 1] — это разные массивы.

Пример:
Ввод

return a + b;
}

export const callingArguments = [
[1,2],
[1,2]
];


Вывод

Result: 3
Invoked: true

memoizedFn(1, 2)
Result: 3
Invoked: false


#домашка
  • ❤ 1
More from @free_html_lessons
  1. Oct 13, 2026Post #3088
  2. Oct 13, 2026Как использовать псевдокласс :has() для навигации С помощью :has() можно улучшить UX меню.…
  3. Oct 12, 2026Post #3086
  4. Oct 12, 2026Как создать адаптивный текстовый градиент Градиенты в тексте — это модный тренд, который м…
  5. Oct 11, 2026Подборка лучших постов за прошлую неделю Лучшие статьи @free_html_lessons: 1. Атрибут rel=…
  6. Oct 9, 2026Post #3083
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 →