Функция пропускает другие условия

Не могу понять почему функция пропускает все остальные условия и не уверен, что такие множественные ИЛИ можно использовать. Подскажите, пожалуйста)


   let currencySuffix;

   let suffixFinder = moneyOperation(currencySuffix);

   function moneyOperation(currencySuffix) {
   if (moneyInAmount % 10 === 2 || 3 || 4 ) {
       return 'рубля'
   } else if (moneyInAmount % 10 === 0 || 5 || 6 || 7 || 8 || 9 ) {
       return 'рублей'
   } else {
       return 'рубль'
   }
   }

   alert(`На ваш счёт поступило ${moneyInAmount} ${suffixFinder}`);

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

Автор решения: nazarpunk

Ваше условие эквивалентно:

if (moneyInAmount % 10 === 2 || true || true) {
    return 'рубля'
} else if (moneyInAmount % 10 === 0 || true || true || true || true || true) {
    return 'рублей'
} else {
    return 'рубль'
}

А для склонения можете использовать эту функцию:

const pluralize = (count, words) => count + ' ' + words[(count % 100 > 4 && count % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][Math.min(count % 10, 5)]];


for (let i = 0; i <= 100; i++) {
  //[`1 рубль`, `4 рубля`, `5 рублей`]
  document.body.innerHTML += `<div>Поступило ${pluralize(i, [`рубль`, `рубля`, `рублей`])}</div>`;
}

→ Ссылка