CCCPaste

DOM Introduction. 8 Generate report

function generateReport() {

    let rowsArray = Array.from(document.getElementsByTagName("tbody")[0].querySelectorAll('tr'));
    console.log(rowsArray);

    let chkboxes = Array.from(document.getElementsByTagName("input"));
    // console.log(chkboxes);

    let outputArea = document.getElementById("output");

    let data = [];

    for (let i = 0; i < rowsArray.length; i++) {
        let row = rowsArray[i];

        let cells = Array.from(row.querySelectorAll('td'));
     
        let employee = cells[0].textContent;
        let deparment = cells[1].textContent;
        let status = cells[2].textContent;
        let dateHired = cells[3].textContent;
        let benefits = cells[4].textContent;
        let salary = cells[5].textContent;
        let rating = cells[6].textContent;

        let employeeObj = {
            employee,
            deparment,
            status,
            dateHired,
            benefits,
            salary,
            rating
        }
        data.push(employeeObj)
    }

    //  console.log(data);
    let checkedFields = []

    for (let i = 0; i < chkboxes.length; i++) {
        let isChecked = chkboxes[i].checked;
        // console.log(isChecked);
        if (isChecked) {
            checkedFields.push(chkboxes[i].name);
        }
    }

    let output = [];

    for (let i = 0; i < data.length; i++) {
        let emp = data[i];
        let newObj = {};
        for (let k = 0; k < checkedFields.length; k++) {
            let field = checkedFields[k];
            newObj[field] = emp[field];
        }

        output.push(newObj);

    }
    let outputString=JSON.stringify(output)
    outputArea.textContent = outputString;
    // console.log(output)

}