The Code for FIZZ BUZZ

getValues()

getValues is a controller function that gets the user's fizz and buzz values from the page so that they can be displayed as multiples for the numbers 1 to 100. It parses the fizz and buzz values as integers and then passes them along with an array of numbers 1 to 100 to a display function where they are all printed to the screen.

//get the values from the Page
//starts or controller function
function getValues() {
    //get values from the page
    let fizzValue = document.getElementById("fizzValue").value;
    let buzzValue = document.getElementById("buzzValue").value;

    //Need to validate input
    //parse into integers
    fizzValue = parseInt(fizzValue);
    buzzValue = parseInt(buzzValue);

    if (Number.isInteger(fizzValue) && Number.isInteger(buzzValue)) {
        //call generateNumbers
        let numbers = generateNumbers();

        //call displayNumbers
        displayNumbers(fizzValue, buzzValue, numbers);
    } else {
        alert("You must enter integers");
    }

}

generateNumbers()

generateNumbers is a logic function that generates and transfers numbers 1 to 100 into an array using a for loop, and then returns the number array to the calling function.

//logic function
function generateNumbers() {
    let numbers = [];

    //get all numbers from start to end

    for (let index = 1; index <= 100; index++) {
        //execute in a loop until index = eValue
        numbers.push(index);
    }

    return numbers;
}

displayNumbers(fValue, bValue, numbers)

displayNumbers is a display function that displays fizz and buzz values for the numbers 1 to 100 on to the page. Both the fizz and buzz values are passed into the function along with the number array. These values are processed using a for loop and if-then-else conditional statements. They are templated on to the page using different colors to maximize user readability.

//display or view functions
function displayNumbers(fValue, bValue, numbers) {
    let templateRows = "";

    for (let index = 0; index < numbers.length; index++) {
        let className = "";
        let number = numbers[index];

        if (index % 5 == 0) {
            templateRows += ``;
        }

        if (number % fValue == 0 && number % bValue == 0) {
            className = "fizzBuzz";
            templateRows += `${className}`;
        }
        else if (number % fValue == 0) {
            className = "fizz";
            templateRows += `${className}`;
        }
        else if (number % bValue == 0){
            className = "buzz";
            templateRows += `${className}`;
        }
        else {
            templateRows += `${number}`;
        }

        if ((index + 1) % 5 == 0) {
            templateRows += ``;
        }
    }

    document.getElementById("results").innerHTML = templateRows;

}