JSFiddle - React, Tailwind, and code Playground
by Qwerty_Wasd
JavaScript
var num = 998; // любое число от 100 до 999, иначе вернет -1
// вместо 4 массивов лучше сделать один объект
// проверка введенных данных идет в функции
// проверка точно на число, строка с числом '121' вернет -1
// если нужно обработать и такую ситуацию, замените условие на
// (+n instanceof Number || typeof +n=== 'number') && !isNaN(+n) && String(n).length === 3
function wordOfNum(n) {
if((n instanceof Number || typeof n === 'number') && !isNaN(n) && String(n).length === 3) {
var numObj = {
1: "один",
2: "два",
3: "три",
4: "четыре",
5: "пять",
6: "шесть",
7: "семь",
8: "восемь",
9: "девять",
10: "десять",
11: "одиннадцать",
12: "двенадцать",
13: "тринадцать",
14: "четырнадцать",
15: "пятнадцать",
16: "шестнадцать",
17: "семнадцать",
18: "восемнадцать",
19: "девятнадцать",
20: "двадцать",
30: "тридцать",
40: "сорок",
50: "пятьдесят",
60: "шестьдесят",
70: "семьдесят",
80: "восемьдесят",
90: "девяносто",
100: "сто",
200: "двести",
300: "триста",
400: "четыреста",
500: "пятьсот",
600: "шестьсот",
700: "семьсот",
800: "восемьсот",
900: "девятьсот"
}, result = 0;
if (n % 100 === 0) result = numObj[n];
else if (n % 100 !== 0 && numObj[n % 100] !== undefined) result = numObj[parseInt(n / 100) * 100] + " " + numObj[n % 100];
else result = numObj[parseInt(n / 100) * 100] + " " + numObj[parseInt(n % 100 / 10) * 10] + " " + numObj[n % 100 % 10];
return result;
} else return -1;
}
console.log(wordOfNum(num));