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));