Вопрос №55448 от пользователя Александр Синицын в проекте «Вычислитель отличий»

Александр Синицын

Добрый день. Тесты прошли но линтер выдает ошибки мутации. Не могу понять как написать код без мутаций клонированных объектов. Мне что на каждую нужную модификацию создавать свой const. Объясните пожалуйста как поступить. Прилагаю кусок своего кода где я клонирую аккумулятор в новый объект в каждой итерации но на этапе добавления данных мутация же не вредит.

const resultJson = unionArr.reduce((acc, key) => {
    const obj = _.cloneDeep(acc);
    obj[key] = {};
    if (!arrFile1.includes(key)) {
      obj[key].state = 'add';
      obj[key].newValue = _.isObject(inJson2[key])
        ? createJson(inJson1[key], inJson2[key])
        : inJson2[key];
    }
1 0

Maksim Litvinov

Добрый день, Александр. Callback-функция в reduce ведь должна возвращать новый аккумулятор. Вы можете создавать новый объект, используя spread-оператор и возвращать его

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев