javascript - 对计算结果感到困惑
问题描述
我有一个如下的json。
const words = [{
"Id": "1",
"Status": "Not Started"
},
{
"Id": "2",
"Status": "Not Started"
},
{
"Id": "3",
"Status": "Completed"
},
{
"Id": "4",
"Status": "Not Started"
},
{
"Id": "5",
"Status": "Not Started"
}];
使用 Javascript,我想计算Completed
百分比,在当前的 json 中,它应该是 20%,因为有 5 个项目,1 个是完整的。
这是我写的代码。
const users = [
{
"Id": "1",
"Status__c": "Not Started"
},
{
"Id": "2",
"Status__c": "Not Started"
},
{
"Id": "3",
"Status__c": "Completed"
},
{
"Id": "4",
"Status__c": "Not Started"
},
{
"Id": "5",
"Status__c": "Not Started"
}
];
let nS = users.filter(it => it.Status__c==='Not Started');
let cm = users.filter(it => it.Status__c!=='Not Started');
console.log(nS.length +' \t' +cm.length);
这给出了准确的计数结果。但在这里我想要百分比。结果中也可能有 3 或 7 个(不是一直有 5 个),我希望这个百分比甚至在这些情况下也能显示结果。
谢谢
解决方案
只需计算已完成的项目reduce
,然后将其除以项目总数:
let completedCount = users.reduce((count, it) => count + (it.Status__c === "Completed" ? 1 : 0), 0);
let completedPercentage = 100 * completedCount / users.length;
注意:您可能需要users.length !== 0
在划分之前检查是否。
推荐阅读
- amp-html - 如何在 AMP 应用程序中连接 RSS 提要
- flutter - Flutter 命令 - Powershell.exe 不在 PATH 错误消息中
- python - 如何应用 node2vec 构建链路预测模型
- c++ - 在 CUDA 中获取纹理对象
- vega-lite - 在vega热图中旋转x轴标签?
- ios - 如何将ios13项目更新到ios14
- python - 优化问题:使用文件1中的字典转换文件2
- c - 如何用 8051 微控制器制作数字时钟
- javascript - 如果出现 HTTP 错误 422,如何使用 fetch 获取响应正文?
- docker - 将 ElasticSearch Docker 容器部署到 AWS Fargate