【发布时间】:2021-12-18 14:50:49
【问题描述】:
我的标题似乎有点混乱,
这是我的问题,我想解构一个对象数组,以便在 chartJS 折线图中使用它的属性。
这是一个复制的数组:
[{
"page": "Page 1",
"date": "2021-10-05",
"visitors": 10
}, {
"page": "Page 2",
"date": "2021-10-05",
"visitors": 20
}, {
"page": "Page 3",
"date": "2021-10-05",
"visitors": 30
},{
"page": "Page 1",
"date": "2021-10-04",
"visitors": 40
}, {
"page": "Page 2",
"date": "2021-10-04",
"visitors": 50
}, {
"page": "Page 3",
"date": "2021-10-04",
"visitors": 60
}]
每个条目都包含一个日期(日期)、一个访问者编号(访问者)和一个页面名称(页面)
例如,如果一个有 2 个日期和 3 个页面,我想为其检索每个日期每个页面的访问者数量。我的数组返回 6 个条目(每个日期 3 页)上面的示例。
那么如何获取每个页面的访问次数并获得一个包含页面名称和日期的数组仅一次以及相关的访问次数,例如:
[ {
page: pageName,
dates: [],
numberOfVisits: [],
},
{
page: pageName,
dates: [],
numberOfVisits: [],
},
{
page: pageName,
dates: [],
numberOfVisits: []
},
]
我尝试减少数组并根据日期或页面名称对其进行过滤,如下所示:
myArray.reduce((a, c) => {
/* Filtering by date but this returns only one page name */
let filtered = a.filter(el => (el.date === c.date));
/* OR Filtering by page name but this returns only oneDate for each */
/* let filtered = a.filter(el => (el.page === c.page)); */
if (filtered.length > 0) {
/* summing up the number of visits => this works in both cases */
a[a.indexOf(filtered[0])].m_unique_visitors += +c.m_unique_visitors;
} else {
a.push(c);
}
})
return a;
【问题讨论】:
-
你能提供一个数组数据,作为一个最小可重复的例子,而不是一张照片吗?
-
哦,好的,我要编辑帖子
-
还请提供所需输出的清晰示例。
-
我刚刚编辑了它!
标签: javascript arrays sorting chart.js destructuring