Number to english words

by rishul matta

JavaScript

var lessHun = {
	1: 'One',
  2: 'Two',
  3: 'Three',
  4: 'Four',
  5: 'Five',
  6: 'Six',
  7: 'Seven',
  8: 'Eight',
  9: 'Nine',
  10: 'Ten',
  11: 'Eleven',
  12: 'Twelve',
  13: 'Thirteen',
  14: 'Fourteen',
  15: 'Fifteen',
  16: 'Sixteen',
  17: 'Seventeen',
  18: 'Eighteen',
  19: 'Nineteen',
  20: 'Twenty',
  30: 'Thirty',
  40: 'Fourty',
  50: 'Fifty',
  60: 'Sixty',
  70: 'Seventy',
  80: 'Eighty',
  90: 'Ninety'
};

var period = ['Hundred', 'Thousand', 'Million', 'Billion']

function convert(nos) {
  if (nos ==0) {
    return 'zero;'
  }
	let counter = 0;
  let quotient = 9999999999, reminder, text

  text = [];
  
  while(nos > 0) {
    quotient = parseInt(nos / 1000);
    reminder = parseInt(nos % 1000);

    let sQue = 9999;
    let loopText = [];
    while (sQue > 0) {

      if (reminder >= 100) {
        sQue = parseInt(reminder/100);
        loopText.push(lessHun[sQue]);
        loopText.push(period[0]);

        reminder = parseInt(reminder%100);
      } else {

        if (reminder >= 20  && reminder < 100) {

          sQue = parseInt(reminder/10);

          if (lessHun[sQue * 10]) {
            loopText.push(lessHun[sQue * 10]);

          }
          
          reminder = parseInt(reminder%10);
          }
        else {
          if (lessHun[reminder]) {
            loopText.push(lessHun[reminder]);

          }
          sQue = 0;
        }
        


      }


    }


    if (loopText.length > 0) {
      if (counter > 0) {
        loopText.push(period[counter]);
      }
      text.push(loopText);
    }

    if (quotient > 0) {
      counter++;
    }

    nos = quotient;

  }

  let str = text.reverse().map((arr) => arr.join(" "));
  if (text.length > 1 ) {
    str = str.join(",");
    return str.substring(0,str.lastIndexOf(",")) + ' and ' + str.substring(str.lastIndexOf(",")+1);
  } else {
    return str.join("")
  }
  
}