javascript - 在 Javascript 中创建计数器数组(反应原生)
问题描述
在我开始之前,我只想提一下,我已经有一个使用 reduce 创建计数器数组的代码,但有时我会遇到错误,我想知道是否还有其他方法
这是一个让我得到一个对象数组的查询:
const handleService = (bUID) => {
const serviceListTmp = [];
const serviceCode = [];
firebase.firestore().collection("users").doc(currentUser.uid).collection("my-appointments").where("businessId", "==", bUID).get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
serviceListTmp.push(doc.data());
})
setServiceObj(serviceListTmp);
console.log("Service Obj ", serviceObj);
})
}
数据举例:
Array [
Object {
"appointmentId": "fyeBbOtHkc1VIX9nZwqw",
"businessId": "5x7bF6YEYpffHy1JGAcblHNyHiF2",
"serviceId": "RIgpGFxnSncs3RzSjQTs",
"serviceType": "Learn JavaScript",
"voucherCode": "tzDah8Yu",
}
// more data
]
我想做的是:
- 我想计算“serviceType”在数据中出现了多少次
- 之后我想检查哪个“serviceType”出现的最大次数和最少次数
- 然后,我想将“voucherCode”添加到匹配的“serviceType”中
想要的结果示例:
"Learn JavaScript" : "2"(counter) //Maximum used
"do something" : "1"(counter) //Minimum used
现在,我想添加到最大使用的服务是匹配来自示例数据的凭证代码
我试图做一些简单的事情,但我把它弄得非常复杂,他们有什么方法可以让这件事变得更简单吗?
解决方案
const arr=[
{
"appointmentId": "fyeBbOtHkc1VIX9nZwqw",
"businessId": "5x7bF6YEYpffHy1JGAcblHNyHiF2",
"serviceId": "RIgpGFxnSncs3RzSjQTs",
"serviceType": "Learn JavaScript",
"voucherCode": "tzDah8Yu",
},
{
"appointmentId": "fyeBbOtHkc1VIX9nZwqw",
"businessId": "5x7bF6YEYpffHy1JGAcblHNyHiF2",
"serviceId": "RIgpGFxnSncs3RzSjQTs",
"serviceType": "Learn JavaScript2",
"voucherCode": "tzDah8Yu",
},
]
const mapServiceTypes={
"Learn JavaScript":0
}
countserviceType=0
arr.map((el)=>{
if(el["serviceType"]){
countserviceType++
const value=mapServiceTypes[el.serviceType]||0
mapServiceTypes[el.serviceType]=value+1
}
})
console.log(map)
console.log(countserviceType)
推荐阅读
- javascript - 在不预加载类的情况下动态创建类的实例
- java - 如果我使用如图所示的集合框架,如何在方法调用中传递标头节点 (?)?
- reactjs - 如何将第一个选项设置为空?
- c# - Itext7动态pdf下载返回-文档在服务器上没有页面
- c# - 如何对需要用户在 Bot Framework 中选择一个选项的自定义提示进行单元测试
- java - 仅将所有 List 元素添加到树的 RightNode
- http - 如何使用 RoundTrip 跟踪请求大小?
- angular - 使用 RxJS ForkJoin 组合多个 API 调用的结果
- discord.js - Args.slice 不是 Discord 机器人中的函数
- javascript - 具有内部和外部参数的 Vue 事件监听器