Agility digit to words

by Krishna Ananthi

JavaScript

function getWordsfromNumber(number) {
    let ones = [
      '',
      'one',
      'two',
      'three',
      'four',
      'five',
      'six',
      'seven',
      'eight',
      'nine',
    ];
    let teens = [
      'ten',
      'eleven',
      'twelve',
      'thirteen',
      'fourteen',
      'fifteen',
      'sixteen',
      'seventeen',
      'eighteen',
      'nineteen',
    ];
    let tens = [
      '',
      '',
      'twenty',
      'thirty',
      'forty',
      'fifty',
      'sixty',
      'seventy',
      'eighty',
      'ninety',
    ];

    let words = '';
    let digitName = [
      'hundred',
      'thousand',
      'ten thousand',
      'hundred thousand',
      'million',
    ];

    let noOfDigit = number.toString().length;
    if (noOfDigit > 2) {
      for (let i = noOfDigit; i > 2; i--) {
        if (number >= Math.pow(10, i - 1) && number < Math.pow(10, i)) {
          words +=
            ones[Math.floor(number / Math.pow(10, i - 1))] +
            ' ' +
            digitName[i - 3] +
            ' ';
          number = number % Math.pow(10, i - 1);
        }
      }
    }
    if (words.length > 0 && number > 0) words += 'and '; //adding and for no greater than 3 digit
    /* if (number >= 100 && number < 1000) {
      words += ones[Math.floor(number / 100)] + ' ' + digitName[0];
      number = number % 100;
    }*/

    if (number >= 20 && number < 100) {
      words += tens[Math.floor(number / 10)] + ' ' + ones[number % 10];
    }

    if (number >= 10 && number < 20) words += teens[number % 10];

    if (number < 10) words += ones[number];

    return words.trim();
  }

  
  console.log(getWordsfromNumber(300))  
  console.log(getWordsfromNumber(3))
  console.log(getWordsfromNumber(999))
  console.log(getWordsfromNumber(455)) 
  console.log(getWordsfromNumber(999999)) 
  console.log(getWordsfromNumber(1234567))