Может так
const oneText = ['','один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'];
const elvText = ['десять', 'одиннацать', 'двенадцать','тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать'];
const tanText = ['', '','двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто'];
const hunText = ['', 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот'];
function transform(number){
let neg = false;
if (number < 0) {
neg = true;
number = - number;
}
if (number >=1000) return '';
if (number === 0) return 'ноль';
const rez = [];
if (neg) rez.push ('минус')
const h = (number / 100) | 0;
number = number % 100;
const d = (number / 10) | 0;
const n = number % 10;
if (h > 0) rez.push (hunText[h])
if (d === 1) {
rez.push (elvText[n])
} else {
if (d > 0) rez.push (tanText[d])
if (n > 0) rez.push (oneText[n])
}
return rez.join(' ');
}
console.log (transform(0));
console.log (transform(5));
console.log (transform(10));
console.log (transform(17));
console.log (transform(30));
console.log (transform(42));
console.log (transform(100));
console.log (transform(214));
console.log (transform(473));
console.log (transform(-100));
console.log (transform(-214));
console.log (transform(-473));