Код работает хорошо. но я хочу соответствующим образом модульный код в отдельные функции. и то, что я пробовал, не работает
$(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')
}