как превратить приложение в отдельные функции в JQuery? - PullRequest
0 голосов
/ 13 января 2020

Код работает хорошо. но я хочу соответствующим образом модульный код в отдельные функции. и то, что я пробовал, не работает

$(document).ready(function () {

    let data = [{ // JSON Object nested in Array 
        "firstname": "Name1",
        "lastname": "LastName1",
        "birthdate": "01/04/1860",
        "deathdate": "01/11/1890"
    }, {
        "firstname": "Name2",
        "lastname": "LastName2",
        "birthdate": "01/01/1860",
        "deathdate": "01/10/1870"
    }]


    let dataTable = $("<table><thead><tr><th>First Name</th><th>Last Name</th><th>Born</th><th>Died</th><th>Age of Death</th></tr></thead></table>");
    $("body").append(dataTable.attr("class", "table")); // Create table skeleton and insert it into DOM. Add class for CSS styling 
    $.each(data, (index, person) => {


        const dob = new Date(person.birthdate);
        const dod = new Date(person.deathdate);
        person.age = Math.floor((dod - dob) / (1000 * 3600 * 24 * 365.25));

        dataTable.append(
            "<tr><td>" + data[index].firstname +
            "</td><td>" + data[index].lastname +
            "</td><td>" + data[index].birthdate +
            "</td><td>" + data[index].deathdate +
            "</td><td>" + data[index].age
        );

    });


    $('#averageageatdeath').text("Average age at death = " + (data.reduce((total, person) =>
        total + person.age, 0) / data.length).toFixed(1));

});
<!doctype html>
<html lang="en">

<head>
   <meta charset="utf-8">
   <title>My JQuery Script</title>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   <link rel="stylesheet" type="text/css" href="styles/styles.css">
</head>

<body>
   <h1>Births and Deaths amongst Workhouse Residents - Born 1864</h1>
   <div id="censusdata"></div>
   <div id="averageageatdeath"></div>
</body>

</html>

Я попытался установить код в отдельные функции.

так я пытался вызывать функции, кодируя с помощью JQuery, но не работает. У кого-нибудь есть ссылка или что-то, что объясняет лучше, как это сделать правильно? Я ценю любую помощь.

function calculateAge() {
    const dob = new Date(person.birthdate);
    const dod = new Date(person.deathdate);
    person.age = Math.floor((dod - dob) / (1000 * 3600 * 24 * 365.25));
}


function getAllAge() {
    $('#averageageatdeath').text("Average age at death = " + (data.reduce((total, person) =>
        total + person.age, 0) / data.length).toFixed(1));

    console.log('test')
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...