gpt4 book ai didi

JavaScript:数组的重复数据删除和计数属性

转载 作者:行者123 更新时间:2023-12-02 21:03:45 25 4
gpt4 key购买 nike

使用数组绝对是我最薄弱的领域之一,因此非常感谢任何帮助。 😊

为了增加挑战,这是针对具有以下限制的 WebOS 应用程序......

  • JavaScript 5.0
  • 唯一的额外库是 JQuery
  • 无箭头功能 (=>)
<小时/>

接收数组的示例...

var Schedule = [{
"category": "Laboratory", "status": "COMPLETE" }, {
"category": "Radiology" , "status": "COMPLETE" }, {
"category": "Laboratory", "status": "SCHEDULED"}, {
"category": "Laboratory", "status": "COMPLETE" }, {
"category": "Radiology" , "status": "SCHEDULED"}, {
"category": "Laboratory", "status": "COMPLETE" }, {
"category": "Doppler" , "status": "SCHEDULED"
}]

所需的转化...

var ScheduleFormatted = [{
"category": "Laboratory", "complete": "3", "total": "4" }, {
"category": "Radiology" , "complete": "1", "total": "2" }, {
"category": "Doppler" , "complete": "1", "total": "1" }, {
}]

如果能先列出不完整的类别,那就太好了。

我已经成功实现了其中的部分功能(例如获取唯一属性,或按状态计算实例计数),但其复杂性让我完全陷入困境。

请帮忙。

最佳答案

您可以创建查找对象,在其中存储每个类别的总/已完成计数:

 var total = {}, complete = {};

Schedule.forEach(function(item) {
var c = item.category;
total[c] = (total[c] || 0) + 1;
if(item.status === "COMPLETED")
complete[c] = (complete[c] || 0) + 1;
});

var ScheduleFormatted = Object.keys(total).map(function(category) {
return {
category: category,
total: "" + total[category],
complete: "" + (complete[category] || 0)
};
});

关于JavaScript:数组的重复数据删除和计数属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61276338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com