Полный подсчет статуса может быть выполнен с помощью reduce
метода, подобного этому,
data = [
[
{ uId: "5920502142", name: "นายสุกฤษฏิ์ ทับซ้อน", date: "11/07/2020 00:17", time: "00:17", status: "ONTIME" }
, { uId: "5920502142", name: "นายสุกฤษฏิ์ ทับซ้อน", date: "11/07/2020 00:29", time: "-", status: "ABSENT" }
],
[
{ uId: "6020500357", name: "นายเกียรติพันธ์ พิทักษ์วงศ์", date: "11/07/2020 00:17", time: "00:25", status: "ONTIME" }
, { uId: "6020500357", name: "นายเกียรติพันธ์ พิทักษ์วงศ์", date: "11/07/2020 00:29", time: "-", status: "ABSENT" }
],
[
{ uId: "6020500365", name: "นายธนาธร ทรงพินิจ", date: "11/07/2020 00:17", time: "00:26", status: "LATE" }
, { uId: "6020500365", name: "นายธนาธร ทรงพินิจ", date: "11/07/2020 00:29", time: "-", status: "ABSENT" }
],
[
{ uId: "6020500373", name: "นายใบชา เจนจบวิทยา", date: "11/07/2020 00:17", time: "-", status: "ABSENT" }
, { uId: "6020500373", name: "นายใบชา เจนจบวิทยา", date: "11/07/2020 00:29", time: "-", status: "ABSENT" }
],
[
{ uId: "6020500381", name: "นายภาณุภัสส์ ธนัชญ์สุธาโชติ", date: "11/07/2020 00:17", time: "-", status: "ABSENT" }
, { uId: "6020500381", name: "นายภาณุภัสส์ ธนัชญ์สุธาโชติ", date: "11/07/2020 00:29", time: "-", status: "ABSENT" }
]
]
const reducer = (accumulator, arr1) => {
for (const arr2 of arr1) accumulator[arr2.status]++;
return accumulator;
};
const statusCount = data.reduce(
reducer,
{ ONTIME: 0, LATE: 0, ABSENT: 0 }
);
console.log(statusCount);
output
{ ONTIME: 2, LATE: 1, ABSENT: 7 }
Кстати, я предполагаю, что статус всегда принимает эти три значения.