Is there a way on how I can improve this if else statement below:
function updateStatusCount(){
var openCount = 0;
var ongoingCount = 0;
var atRiskCount = 0;
var missedCount = 0;
var closedCount = 0;
var onHoldCount = 0;
$('.sr-header-status').each(function(){
var value = $(this).html().toLowerCase();
if(value === "open"){
openCount = openCount + 1;
} else if (value === "ongoing"){
ongoingCount = ongoingCount + 1;
} else if (value === "at risk"){
atRiskCount = atRiskCount + 1;
} else if (value === "missed target"){
missedCount = missedCount + 1;
} else if (value === "closed"){
closedCount = closedCount + 1;
} else if (value === "on hold"){
onHoldCount = onHoldCount + 1;
}
});
$('.statusCount').empty();
$('.open.status_filter').find('span.statusCount').html(openCount);
$('.ongoing.status_filter').find('span.statusCount').html(ongoingCount);
$('.atrisk.status_filter').find('span.statusCount').html(atRiskCount);
$('.missedtarget.status_filter').find('span.statusCount').html(missedCount);
$('.closed.status_filter').find('span.statusCount').html(closedCount);
$('.onhold.status_filter').find('span.statusCount').html(onHoldCount);
}
I'm thinking something like this
function updateStatusCount(){
getStatusCount("open");
getStatusCount("ongoing");
getStatusCount("on hold");
getStatusCount("at risk");
getStatusCount("missed target");
getStatusCount("closed");
}
function getStatusCount(status){
var count = 0;
var statusClass = "."+status.replace(/ /g,'');
var $statusContainer = $(statusClass).find('span.statusCount');
$('.sr-header-status').each(function(){
var value = $(this).html().toLowerCase();
if(value === status){
count = count + 1;
}
});
$statusContainer.empty();
$statusContainer.html(count);
}
but which is better?
Thank you