@tugens

Как изменить объект с вложенными свойствами?

Всем привет. Помогите пожалуйста с проблемой. Есть такой объект:
const obj = {
  user: {
    activeValue: 2, // должно быть 4
    accountList: {
      112211: {
        value: 1,  // должно быть 3 
      },
      112212: {
        value: 2,  // должно быть 4
      },
    },
  },
};

Нужно увеличить значения value, но они не должны повторяться. Как это можно сделать ?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
NikFaraday
@NikFaraday
Student full-stack Developer
Прочитал комментарии, могу предложить такой вариант:

function increaseValues(obj) {
    // Увеличиваем значение value и присваиваем ему activeValue + 1
    if (obj.hasOwnProperty('value')) {
        obj.value = obj.user.activeValue + 1;
    }
    // Рекурсивно вызываем функцию для всех вложенных объектов
    for (let key in obj) {
        if (typeof obj[key] === 'object') {
            increaseValues(obj[key]);
        }
    }
}

const obj = {
    user: {
        activeValue: 2,
        accountList: {
            112211: {
                value: 1,
            },
            112212: {
                value: 2,
            },
        },
    },
};

increaseValues(obj);
console.log(obj);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы