Sobes.tech
Назад к задачам
Junior — Senior
33

Создание чистых функций для генерации пользователя и выполнения сложения

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Требуется переписать функции createUser и add так, чтобы они стали чистыми: не влияли на внешнее состояние и не вызывали побочных эффектов, а вместо этого возвращали новые данные.

// 1
const produceId = () => Math.floor(Math.random() * 10000);
const createUser = (userName: string, userAge: number) => ({
  id: produceId(),
  name: userName,
  age: userAge
});
console.log(createUser("Alex", 28));
console.log(createUser("Alex", 28));
console.log(createUser("Alex", 28));

// 2
let counter = 2;
const add = (value: number) => {
  counter += value;
};

add(4);
console.log(counter);

Задача состоит в том, чтобы избавиться от изменения глобальной переменной counter и от скрытого использования случайного генератора внутри createUser. Функция создания пользователя должна возвращать объект без изменения внешних данных, а функция сложения должна возвращать новое значение вместо изменения counter.