function getValues(){
    //Pull values from page.
    let loan = parseInt(document.getElementById("loan").value);
    let term = parseInt(document.getElementById("term").value);
    let rate = parseFloat(document.getElementById("rate").value);
    //Calc and display main information.
    let totalMonthlyPayment = ((loan) * (rate/1200)) / (1-(Math.pow((1 + rate/1200), -term)))
    let totalLoan = totalMonthlyPayment * term;
    let totalInterest = totalLoan - loan;
    document.getElementById("displayMonthlyPayment").innerHTML = `$${(totalMonthlyPayment).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}`;
    document.getElementById("displayPrincipal").innerHTML = `$${(loan).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}`;
    document.getElementById("displayInterest").innerHTML = `$${(totalInterest).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}`;
    document.getElementById("displayCost").innerHTML = `$${(totalLoan).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}`;
    //Calculate monthly payments - insert objects into an array.
    array = calculate(loan, term, rate);
    //Display the array.
    displayPayments(array);
}
function calculate(loan, term, rate){
    let totalMonthlyPayment = ((loan) * (rate/1200)) / (1-(Math.pow((1 + rate/1200), -term)))
    //Create an array with a starting empty object.
    let array = [{
        month: 0,
        payment: totalMonthlyPayment,
        principal: 0,
        interest: 0,
        totalInterest: 0,
        balance: loan
    }]
    //For loop to calculate all values of new object, push object into array.
    for (let i = 1; i <= term; i++){
        let prevBalance = array[i-1].balance;
        let prevTInterest = array[i-1].totalInterest;
        let interest = prevBalance * (rate / 1200);
        let principal = totalMonthlyPayment - interest;
        let totalInterest = prevTInterest + interest;
        let balance = prevBalance - principal;
        array.push({
            month: i,
            payment: totalMonthlyPayment,
            principal: principal,
            interest: interest,
            totalInterest: totalInterest,
            balance: balance
        })
    }
    //Return array so we can display it.
    return array;
}
function displayPayments(array){
    //Grab template from HTML ...
    let template = document.getElementById("template");
    //Grab tbody from HTML
    let body = document.getElementById("eventBody");
    //Clear tbody
    body.innerHTML = "";
    //Array shift so first index of array is deleted.
    array.shift();
    //For each element, display in table.
    array.forEach(element => {
        let node = document.importNode(template.content, true)
        let item = node.querySelectorAll("td");
        item[0].textContent = element.month;
        item[1].textContent = `$${(element.payment).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}`;
        item[2].textContent = `$${(element.principal).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}`;
        item[3].textContent = `$${(element.interest).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}`;
        item[4].textContent = `$${(element.totalInterest).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}`;
        item[5].textContent = `$${(element.balance).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}`;
        body.appendChild(node);
    });
}
JavaScript