Функция пропускает другие условия
Не могу понять почему функция пропускает все остальные условия и не уверен, что такие множественные ИЛИ можно использовать. Подскажите, пожалуйста)
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>`;
}