您好,我有一个日期列表,存储在数组中;同一日期有多个条目。我想获取 json 对象的 for 中每个日期的出现次数,例如:
预期输出:
日期:[{日期:2019年11月10日,计数:5},{日期:2019年11月11日,计数:4},{日期:2019年11月12日,计数: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);
但是我没有以预期的方式获得对象。我遗漏了一些东西,但不知道如何修复。如何使用数组达到预期的结果?
最佳答案
另一个:
var array = [
"11/10/2019 10:44:16 PM",
"11/10/2019 10:44:16 PM",
"11/10/2019 10:43:06 PM",
"11/10/2019 10:41:16 PM",
"11/10/2019 10:40:16 PM",
"11/11/2019 10:29:16 PM",
"11/11/2019 10:28:16 PM",
"11/11/2019 10:20:16 PM",
"11/11/2019 10:29:16 PM",
"11/12/2019 10:23:16 PM",
"11/12/2019 10:20:16 PM",
"11/12/2019 10:19:16 PM",
"11/12/2019 10:21:16 PM",
"11/12/2019 10:18:16 PM"
]
var result = [];
array.reduce(function(respObj, value) {
value = value.substring(0, 10);
if (!respObj[value]) {
respObj[value] = {
Date: value,
Count: 1
};
result.push(respObj[value])
} else {
respObj[value].Count++;
}
return respObj;
}, {});
console.log(result)
关于javascript - 从包含每个日期出现次数的日期数组生成 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58729229/