Как избавится от дублирования кода? разница в одной переменной ctrlKey, metaKey
if (Array.isArray(this.$refs.option) && this.$refs.option.includes(event.target)) {
if (this.multiple && event.ctrlKey === false && event.shiftKey === false !event.target.classList.contains('disabled')) { this.optionsShow = false;}
if (this.multiple && event.metaKey === false && event.shiftKey === false && !event.target.classList.contains('disabled')) { this.optionsShow = false;}
}
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
При текущем условии можно написать так:
if (this.multiple && (event.metaKey === false || event.ctrlKey === false) && event.shiftKey === false && !event.target.classList.contains('disabled')) {
this.optionsShow = false;
}
Кстати, позаботьтесь о том, чтобы таких длинных условий не было. Читать не удобно совсем. Выделите переменную или две, три, запишите условия, и назовите их так, чтобы было ясно что там. Затем запишите их в условие. Пример:
let userIsGuest = ..... ;
let userCanComment = .... ;
if (!userIsGuest && userCanComment) {
....
}