Как сравнить значения свойств обьекта с конкретной переменной?

И снова доброго времени суток и у меня очередной вопрос. Итак, есть у меня обьект:

const NO = 0,
      YES = 1;

let rooms = {
    bedroom: NO,
    troneroom: NO,
    armory: NO,
    treasury: NO,
    dungeon: NO,
    library: NO,
    labratory: NO,
  },

есть некая переменная:

let room_yes = YES

и теперь, вопрос: как сравнить все свойства обьекта с данной переменной и если значение какого-то из свойств соответствует значению переменной, то вернуть, например, ключ этого свойства? Может есть какой-то цикл для обьектов или что-то в таком духе?

Я пробовал искать информацию в гугле, но там по большей части речь идет о сравнении обьекта с обьектом и нет ни слова о том, как его содержимое можно сравнить с каким-то конкретным значением... (Не исключаю, что не смог найти нужного ответа из-за того, что неправильно задавал вопрос, но как спросить гугл об этом правильно, я хз...)


Ответы (2 шт):

Автор решения: Алексей Шиманский

const NO = 0,
      YES = 1;

let rooms = {
    bedroom: NO,
    troneroom: NO,
    armory: NO,
    treasury: NO,
    dungeon: YES,
    library: NO,
    labratory: NO,
};

let room_yes = YES;

for (const [key, value] of Object.entries(rooms)) {
  if (value === room_yes)
    console.log(`${key}`);
}

Ссылка на доки: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

→ Ссылка
Автор решения: SwaD

Перебрать массив можно циклом for .. in напрямую обращаясь к объекту

const NO = 0,
  YES = 1;

let rooms = {
  bedroom: NO,
  troneroom: YES,
  armory: NO,
  treasury: NO,
  dungeon: NO,
  library: YES,
  labratory: NO,
}

let room_yes = YES;

for (let key in rooms) {
  if (rooms[key] === room_yes) {
    console.log(key);
  }
}

В дополнение к ответу Алексея - можно использовать стандартный метод перебора массивов .forEach

Object.entries(rooms).forEach(([key, value]) => {
  if (value === room_yes) {
    console.log(key)
  }
})
→ Ссылка