Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将日数组拆分为月_Javascript_Ecmascript 6 - Fatal编程技术网

Javascript 将日数组拆分为月

Javascript 将日数组拆分为月,javascript,ecmascript-6,Javascript,Ecmascript 6,我有一系列的日常需求。数组中的第一个元素表示开始日期。我需要将每日需求转换为每月需求的数组 我尝试了以下方法: const monthSize=[1,2,3]; 常数起始日期=力矩(1535328000000); 控制台日志(起始日期); 常数dailyReq=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

我有一系列的日常需求。数组中的第一个元素表示开始日期。我需要将每日需求转换为每月需求的数组

我尝试了以下方法:

const monthSize=[1,2,3];
常数起始日期=力矩(1535328000000);
控制台日志(起始日期);
常数dailyReq=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0,0,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0,0,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0,0,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0,0,0,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0,0,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0,0,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0,0,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0,0,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0.7228819444444444,0];
const result=dailyReq.map((e,i)=>{
返回i%monthSize==0?dailyReq.slice(i,i+monthSize):null;
}).过滤器((e)=>{
返回e;
});
log(result.map(g=>g.reduce((a,b=>a+b,0)))

您可以简单地按月分组,然后获得每个值的长度

const dailyReq=[1,1,0,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,0,1];
常数起始日期=力矩(1521072000000);
const monthly=[…dailyReq.reduce((a,b,i)=>{
如果(i>0)开始日期,则添加(1,'天');
返回b==0?a:a.set(startDate.month(),(a.get(startDate.month())| |[]).concat(b));
},新映射)。值()].Map(e=>e.length);
console.log(每月);

什么是
monthSize
?你能用文字解释一下获得
12,20,10
所需的逻辑是什么吗?如果
开始日期
不相关,请随意删除它以获得@CertainPerformance,这样我就有了一个显示每日值的表。我可以根据每日值切换到查看每周、每月等s、 查看数组和开始日期,我知道
[12,20,10]
是每个月的值,即月份是3月,开始日期是该月的第15天。因此,值
12
是从第15天到3月底31天的值之和。我为您制作了一个片段