Javascript 在对象数组中保留每月的读取计数
假设我有一个对象数组,如下所示:Javascript 在对象数组中保留每月的读取计数,javascript,node.js,Javascript,Node.js,假设我有一个对象数组,如下所示: const sampleArray = [{"read":true,"readDate":2021-01-15T18:21:34.059Z}, {"read":true,"readDate":2021-01-15T18:21:34.059Z}, {"read":true,"
const sampleArray = [{"read":true,"readDate":2021-01-15T18:21:34.059Z},
{"read":true,"readDate":2021-01-15T18:21:34.059Z},
{"read":true,"readDate":2021-02-15T18:21:34.059Z},
{"read":true,"readDate":2021-04-15T18:21:34.059Z},
{"read":true,"readDate":2021-12-15T18:21:34.059Z}]
我想保持每个月的读取计数,如果缺少该月,则应给出0
预期O/p:
[2,1,0,1,0,0,0,0,0,0,0,12] => In jan -2 count, feb - 1 count, april - 1 count, dec - 1 count and rest months there is no read data.
[2,1,0,1,0,0,0,0,0,0,0,1] => In jan -2 count, feb - 1 count, april - 1 count, dec - 1 count and rest months there is no read data.
为此,我尝试:
let invoiceInfoArray = [];
var d = new Date();
var n = d.getMonth();
for (let i = 0; i < sampleArray.length; i++) {
if (sampleArray[i].readDate.getMonth() + 1 == n) {
invoiceInfoArray.push(invoiceInfo[i])
}
}
如果有人需要任何进一步的细节,请告诉我。任何指导都会非常有用。创建一个长度为
12
的新数组
,并将readDate
作为Date
对象,从getMonth
获取月份
您可以使用12
元素创建一个新数组,并将0
作为前缀填充
const months = Array(12).fill(0);
// or
const months = new Array(12).fill(0);
读到
const sampleArray=[{
读:没错,
阅读日期:“2021-01-15T18:21:34.059Z”
},
{
读:没错,
阅读日期:“2021-01-15T18:21:34.059Z”
},
{
读:没错,
阅读日期:“2021-02-15T18:21:34.059Z”
},
{
读:没错,
阅读日期:“2021-04-15T18:21:34.059Z”
},
{
读:没错,
阅读日期:“2021-12-15T18:21:34.059Z”
},
];
常量月份=数组(12)。填充(0);
//或
//常量月份=新数组(12)。填充(0);
sampleArray.forEach((obj)=>{
const month=新日期(obj.readDate).getMonth();
++月[月];
});
控制台日志(月)代码>上一次索引结果的显示方式12
。应该是1[2,1,0,1,0,0,0,0,0,0,1]
是的,这是正确的,我已经编辑了问题,我无法遵循常量月份=数组(12)。填充(0);这部分…它到底做了什么?使用array
函数创建一个新数组,它将数组值填充为0
Ohh,因此在开始时,只有数组被0填充,值被替换了,对吗?很好,您可以使用构造函数创建一个包含12
元素的数组。非常感谢你。
const months = Array(12).fill(0);
// or
const months = new Array(12).fill(0);