I would like to calculate the average of “TR” column in my table, but I could not calculate it using jquery.
my jquery code:
JavaScript
x
28
28
1
table = $("#beyannameTable").DataTable(
2
{
3
dom: 'Bfrtip',
4
buttons: ['excel', 'print'],
5
lengthChange: false,
6
searching: false,
7
paging: false,
8
9
"ajax": {
10
"url": "/Raporlama/ITH_Operasyon",
11
"type": "GET",
12
"datatype": "json",
13
data: { tescilTrh1: $("#tescilTrh1").val(), tescilTrh2: $("#tescilTrh2").val() },
14
},
15
16
"columns": [
17
{ "data": "Kullanici" },
18
{ "data": "Ref" },
19
{ "data": "Tescil_No" },
20
{ "data": "UNVAN" },
21
{ "data": "TescilTarihi" },
22
{ "data": "GumrukAdi" },
23
{ "data": "Cekildi_Tarih" },
24
{ "data": "GumrukEvraklar_Tarih" },
25
{ "data": "TR" }
26
]
27
});
28
Advertisement
Answer
You may access desired column data, using .column().data()
method. If you need to recalculate your column average dynamically, based on visible rows, you may use selector modifier {search: 'applied'}
as a second argument within .column()
and option drawCallback
to call average re-calculation upon each re-draw.
Please, checkout below demo of that approach:
JavaScript
1
25
25
1
//sample source data
2
const srcData = [
3
{id: 1, name: 'Steve', age: 24},
4
{id: 2, name: 'Chris', age: 31},
5
{id: 3, name: 'Martha', age: 28},
6
{id: 4, name: 'Sam', age: 33}
7
];
8
//DataTables initialization
9
$('#mytable').DataTable({
10
dom: 'ft',
11
data: srcData,
12
columns: [
13
{title: 'id', data: 'id'},
14
{title: 'name', data: 'name'},
15
{title: 'age', data: 'age'}
16
],
17
drawCallback: () => $('#avgage').text(avgAge())
18
});
19
//average age calculation
20
function avgAge() {
21
let columnData = $('#mytable').DataTable().column(2,{search:'applied'}).data().toArray();
22
return Math.round(columnData.reduce((sum, item) => sum+=item)/columnData.length);
23
};
24
//Append <tfoot>
25
$('#mytable').append(`<tfoot><tr><td colspan="3">Average age: <span id="avgage">${avgAge()}</span></td></tr></tfoot>`);
JavaScript
1
11
11
1
<!doctype html>
2
<html>
3
<head>
4
<script type="application/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
5
<script type="application/javascript" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
6
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
7
</head>
8
<body>
9
<table id="mytable"></table>
10
</body>
11
</html>