javascript - 从日期数组生成json对象,每个日期都出现
问题描述
您好,我有一个日期列表,存储在一个数组中;同一日期有多个条目。我想在 json 对象的 for 中获取每个日期的出现,例如:
预期输出:
dates:[{date:11/10/2019,count: 5},{date: 11/11/2019,count:4},{date:11/12/2019, count: 5 }]
我的数组数据如下所示:
[
"11/10/2019, 10:44:16 PM",
"11/10/2019, 10:48:26 AM",
"11/10/2019, 10:59:41 PM",
"11/10/2019, 11:37:53 AM",
"11/10/2019, 12:19:52 PM",
"11/11/2019, 12:46:59 PM",
"11/11/2019, 12:59:08 PM",
"11/11/2019, 1:32:23 PM",
"11/11/2019, 3:08:01 AM",
"11/12/2019, 3:21:39 AM",
"11/12/2019, 3:26:00 PM",
"11/12/2019, 3:27:13 PM",
"11/12/2019, 4:43:24 AM",
"11/12/2019, 4:49:39 PM"
]
我喜欢只考虑 json 中的日期。
我试过代码:
var cur;
var cnt = 0;
for (var i = 0; i < array_dates.length; i++) {
cur = current.getDate();
var d = new Date(array_dates[i]);
var n = d.getDate();
if (n != cur) {
if (cnt > 0) {
newdata[current] = cnt;
}
current = new Date(array_dates[i]);
cnt = 1;
} else {
cnt++;
}
}
newdata = JSON.stringify(newdata);
但我没有以预期的方式得到一个对象。我遗漏了一些东西,但不知道如何解决。我怎样才能用数组达到预期的结果?
解决方案
您可以使用String.split
获取字符串的日期部分(在逗号左侧),然后将每个值计数到一个对象中,然后处理计数以生成所需形式的输出:
const array_dates = [
"11/10/2019, 10:44:16 PM",
"11/10/2019, 10:48:26 AM",
"11/10/2019, 10:59:41 PM",
"11/10/2019, 11:37:53 AM",
"11/10/2019, 12:19:52 PM",
"11/11/2019, 12:46:59 PM",
"11/11/2019, 12:59:08 PM",
"11/11/2019, 1:32:23 PM",
"11/11/2019, 3:08:01 AM",
"11/12/2019, 3:21:39 AM",
"11/12/2019, 3:26:00 PM",
"11/12/2019, 3:27:13 PM",
"11/12/2019, 4:43:24 AM",
"11/12/2019, 4:49:39 PM"
];
let counts = array_dates.reduce((c, v) => {
let d = v.split(',')[0];
c[d] = (c[d] || 0) + 1;
return c;
}, {});
let data = {
dates: []
};
for (date in counts) {
data.dates.push({
date: date,
count: counts[date]
});
}
console.log(data);
推荐阅读
- python - /blogs/ 'post' 处的 NoReverseMatch 不是已注册的命名空间
- keras - 我已经安装了 numpy ,但无法导入它
- function - Android Studio 说当我调用 kotlin 代码中较低的函数时出现错误,我是否设置错误
- laravel - BadMethodCallException 未知方法,functions.php 第 324 行中的请求
- mysql - MySQL JSON_REMOVE 与多数组
- swift - TabView 中的 EnvironmentObject - SwiftUI
- glib - 在 OS X 上未检测到 glibmm-2.4 安装
- pyspark - pyspark ml 是否支持 Ann 回归器?
- flutter - 使用 AnimationController 使其第二次可见后无法为颤振小部件设置动画
- c++ - 如何在函数内打印到标准输出时分离可变参数模板参数