Как избавится от дублирования кода? разница в одной переменной 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) {
    ....
}
→ Ссылка