Вопрос №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

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

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

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

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 8 июня
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 8 июня
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 8 июня
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 8 июня
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 8 июня
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 8 июня
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 8 июня
профессия
от 10 080 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 8 июня
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 8 июня
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время
профессия
от 6 300 ₽ в месяц
новый
Автоматизированное тестирование веб-приложений на JavaScript
10 месяцев
с нуля
в разработке
дата определяется