#javascript
Вопрос:
const form = [
{
"_id": "61436aa8deef0390dcfdea79",
"user": "613f92eb98da0c5facc1b4ca",
"registerName": "Edwin",
"email": "edwin@asng.space",
"category": "Urusan Lain Lain",
"title": " Ah Yong",
"contactNumber": "0191231232",
--> "time": "8am",
"dateBooking": "2021-09-18",
"icNumber": "860909-49-5851",
"date": "2021-09-16T16:02:48.457Z",
"__v": 0
},
{
"_id": "61436ab8deef0390dcfdea7a",
"user": "613f92eb98da0c5facc1b4ca",
"registerName": "ESTSETS",
"email": "123@gmail.com",
"category": "Daftar Baru",
"title": " Ah Yong",
"contactNumber": "0149530130",
--> "time": "8am",
"dateBooking": "2021-09-18",
"icNumber": "123123123123",
"date": "2021-09-16T16:03:04.211Z",
"__v": 0
},
{
"_id": "61436b1894116c90f82170b9",
"user": "613f92eb98da0c5facc1b4ca",
"registerName": "Ah Yong",
"email": "312@gmail.com",
"category": "Pertanyaan",
"title": " Ah Yong",
"contactNumber": "0149530130",
--> "time": "9am]",
"dateBooking": "2021-09-18",
"icNumber": "123654",
"date": "2021-09-16T16:04:40.962Z",
"__v": 0
}
]
Как я могу преобразовать time
внутри объекта в
uniqueCount = [8am,9am,10am,8am,9am,10am,8am,9am,10am,11am];
и подсчитайте частоту каждого раза в массиве? Я хочу получить такой результат, как:
8am = 3
9am = 3
10am = 3
11am = 1
Я не уверен, сработает ли это, потому что я хотел бы каждый раз фильтровать, сколько людей нужно для создания условия.
Ответ №1:
Вы можете использовать Array#map
для получения массива свойств времени, а затем использовать Array#reduce
для получения объекта с частотами.
const arr=[{_id:"61436aa8deef0390dcfdea79",user:"613f92eb98da0c5facc1b4ca",registerName:"Edwin",email:"edwin@asng.space",category:"Urusan Lain Lain",title:" Ah Yong",contactNumber:"0191231232",time:"8am",dateBooking:"2021-09-18",icNumber:"860909-49-5851",date:"2021-09-16T16:02:48.457Z",__v:0},{_id:"61436ab8deef0390dcfdea7a",user:"613f92eb98da0c5facc1b4ca",registerName:"ESTSETS",email:"123@gmail.com",category:"Daftar Baru",title:" Ah Yong",contactNumber:"0149530130",time:"8am",dateBooking:"2021-09-18",icNumber:"123123123123",date:"2021-09-16T16:03:04.211Z",__v:0},{_id:"61436b1894116c90f82170b9",user:"613f92eb98da0c5facc1b4ca",registerName:"Ah Yong",email:"312@gmail.com",category:"Pertanyaan",title:" Ah Yong",contactNumber:"0149530130",time:"9am",dateBooking:"2021-09-18",icNumber:"123654",date:"2021-09-16T16:04:40.962Z",__v:0}];
const res = arr.map(x => x.time).reduce((acc, curr)=>{
acc[curr] = (acc[curr] || 0) 1;
return acc;
}, {});
console.log(res);