How to render amount in words (Javascript)

How to render amount in words (Javascript)

  1. var th = ['', 'thousand', 'million', 'billion', 'trillion'];

    var dg = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];

    var tn = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];

    var tw = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];

    function toWords(numToConvert, isDecimalPart=false) {
    numToConvert = numToConvert.toString();
    numToConvert = numToConvert.replace(/[\, ]/g, '');
    if (numToConvert != parseFloat(numToConvert)) return 'not a number';
    var numLength = numToConvert.indexOf('.');
    if (numLength == -1) numLength = numToConvert.length;
    if (numLength > 15) return 'too big';
    var numArray = numToConvert.split('');
    var str = '';
    var sk = 0;
    for (var i = 0; i < numLength; i++) {
    if ((numLength - i) % 3 == 2) {
    if (numArray[i] == '1') {
    str += tn[Number(numArray[i + 1])] + ' ';
    i++;
    sk = 1;
    } else if (numArray[i] != 0) {
    str += tw[numArray[i] - 2] + ' ';
    sk = 1;
    }
    } else if (numArray[i] != 0) {
    str += dg[numArray[i]] + ' ';
    if ((numLength - i) % 3 == 0) {
    str += 'hundred ';
    if (numArray[i+2] != 0 ||
    (numArray[i+2] == 0 && numArray[i+1] != 0)) str += 'and ';
    }
    sk = 1;
    }
    if ((numLength - i) % 3 == 1) {
    if (sk) {
    str += th[(numLength - i - 1) / 3] + ' ';
    if (numArray[i+1] == 0 && numArray[i+2] == 0
    && numArray[i+3] != 0) str += 'and ';
    }
    sk = 0;
    }
    }
    //Add the currency string. In the example below, we use the "Dollars". in your case, you may want to chgange it to Naira...
    str += isDecimalPart ? '' : 'Dollars ';
    if (numLength != numToConvert.length) {
    var y = numToConvert.length;
    var decimalPart = numToConvert.substring(numLength + 1);
    decimalPart = decimalPart.length == 1 ? decimalPart + "0" : decimalPart;
    str += toWords(decimalPart, true);
    str += 'Cents ';
    }
    return str.replace(/\s+/g, ' ').toUpperCase();

    }
    if (this.amountField) return toWords(this.amountField);
    else return "";