Оптимизировать работу условий через if?
Как в один if сделать такие проверки если результат всегда один
if (this.percentUse > this.percentAll) {
return 0;
}
if (this.percentUse === 0 || this.percentAll === 0) {
return 0;
}
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Считаю, что тут не надо делать условие в одну строку. Если условия будут добавляться, то и условие будет становится шире и шире, всё больше нечитабельной портянкой.
Вот на что стоило бы потратить силы, так это выделить условия в переменные, которые "говорят" что они делают и почему. И тогда уже эти переменные, если так надо, вставить в усиловие.
Пример:
let usagePercentIsExceeded = this.percentUse > this.percentAll;
let percentsDoNotAccrued = this.percentUse === 0 || this.percentAll === 0;
if (usagePercentIsExceeded || percentsDoNotAccrued)
return 0;
Более того, желательно сделать отдельный метод, также с нужным "говорящим" названием. Потому что почему возвращается 0 - не ясно
Автор решения: Pilaton
→ Ссылка
switch (true) {
case this.percentUse > this.percentAll:
case this.percentUse === 0:
case this.percentAll === 0:
return 0;
}