@vetsmen

Как упростить данный код?

for(const key of Object.keys(items)) {
				if(items[key].stage == 2) {
					this.client.srem('items', key);
					this.emit('itemGv', items[key]);
				} else if(trades[key].stage == 5) {
					this.client.srem('items', key);
					this.emit('itemTm', items[key]);
				}
			}
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Сделать объект, где ключами и значениями будут возможные значения stage и соответствующие им значения, передаваемые в emit первым параметром:

const STAGES = {
  2: 'itemGv',
  5: 'itemTm',
};

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

for (const [ key, val ] of Object.entries(items)) {
  const s = STAGES[val.stage];
  if (s) {
    this.client.srem('items', key);
    this.emit(s, val);
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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