const customerList = [{"ID":1,"name":"Queen","email":"Queen@gmail.com","counts_of_visit":13,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"Yes"},{"ID":2,"name":"Jack","email":"Jack@gmail.com","counts_of_visit":2,"latest_time_of_visit":"2021-04-30T02:08:23.000Z","contacted":"Yes"},{"ID":3,"name":"Nolan","email":"Nolan@gmail.com","counts_of_visit":6,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"No"},{"ID":4,"name":"Janet","email":"Janet@gmail.com","counts_of_visit":7,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"Yes"},{"ID":5,"name":"Loris","email":"Loris@gmail.com","counts_of_visit":8,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"No"},{"ID":6,"name":"Bree","email":"Bree@gmail.com","counts_of_visit":3,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"No"},{"ID":7,"name":"Daphne","email":"Daphne@gmail.com","counts_of_visit":2,"latest_time_of_visit":"2021-04-15T09:08:23.000Z","contacted":"Yes"},{"ID":8,"name":"Bari","email":"Bari@gmail.com","counts_of_visit":4,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"Yes"},{"ID":9,"name":"Billy","email":"Billy@gmail.com","counts_of_visit":5,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"No"},{"ID":10,"name":"Belia","email":"Belia@gmail.com","counts_of_visit":2,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"No"},{"ID":11,"name":"Moses","email":"Moses@gmail.com","counts_of_visit":9,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"Yes"},{"ID":12,"name":"Alex","email":"Alex@gmail.com","counts_of_visit":7,"latest_time_of_visit":"2021-02-10T01:08:23.000Z","contacted":"Yes"},{"ID":13,"name":"Alix","email":"Alix@gmail.com","counts_of_visit":8,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"Yes"},{"ID":14,"name":"Wendell","email":"Wendell@gmail.com","counts_of_visit":2,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"No"},{"ID":15,"name":"Ceola","email":"Ceola@gmail.com","counts_of_visit":5,"latest_time_of_visit":"2021-03-12T12:08:23.000Z","contacted":"No"}]
<th class="countheader" onClick={() => sortCountCustomer}>
Counts of Visit {getCountArrow()}
</th>
const [counterCount, setcounterCount] = useState(0);
function sortCountCustomer() {
const sortedCountCustomer = [...customerList];
let sortCountVisit = counterCount;
//check the current sortCount, if it is 2 then go back to 1,
//if not then increase by 1
if (sortCountVisit === 2) {
sortCountVisit = 1;
setCounterCount(1);
} else {
sortCountVisit += 1;
setCounterCount(sortCountVisit);
}
console.log(sortCountVisit);
if (sortCountVisit < 3) {
sortedCountCustomer.sort(function (x, y) {
if (sortCountVisit === 1) {
return x.counts_of_visit < y.counts_of_visit ? 0 : x.counts_of_visit ? -1 : 1;
} else if (sortCountVisit === 2) {
return x.counts_of_visit > y.counts_of_visit ? 0 : x.counts_of_visit ? 1 : -1;
}
});
setCustomerList(sortedCountCustomer);
}
}
My function does not work when sorting the integer number from ascending and descending although I called the function to sort onClick method when I click the header
I edited my code to show where customerList and countercount come from