如何使用javascript从json数据中计算一个月内每天的项目数
我想编写一个程序,在ajax调用的帮助下,为mysql数据库中json响应中的所有数据计算一天内一些变量的总和 在这个数据中,我想访问如何使用javascript从json数据中计算一个月内每天的项目数,javascript,jquery,json,Javascript,Jquery,Json,我想编写一个程序,在ajax调用的帮助下,为mysql数据库中json响应中的所有数据计算一天内一些变量的总和 在这个数据中,我想访问 日期时间 检查气缸 刺激 在2021-05-30日期,检查的气缸数之和为9,生产速率为生产速率和检查的气缸数的平均值 比如说 日期1=2021-05-31=>CyinderChecked=1 (一天内检查的所有气缸的总和) 生产率=1/1=1 (一天的生产率之和除以一天内检查的气缸 日期2=2021-05-30=>CylinderChecked=9;
- 日期时间
- 检查气缸
- 刺激
- 日期1=2021-05-31=>CyinderChecked=1
(一天内检查的所有气缸的总和) - 生产率=1/1=1
(一天的生产率之和除以一天内检查的气缸 - 日期2=2021-05-30=>CylinderChecked=9;
(一天内检查的所有气缸的总和) - 生产率=6/9=0.67;
(一天的生产率之和除以一天内检查的气缸
let数据=[{
"0": "2021-05-31 09:10:27",
"1": "1",
"2": "1",
“日期”:“2021-05-3109:10:27”,
“ProdRate”:“1”,
“已检查气缸”:“1”
},
{
"0": "2021-05-30 22:03:32",
"1": "1",
"2": "4",
“日期”:“2021-05-30 22:03:32”,
“ProdRate”:“1”,
“已检查气缸”:“4”
},
{
"0": "2021-05-30 18:41:34",
"1": "1",
"2": "9",
“日期”:“2021-05-30 18:41:34”,
“ProdRate”:“1”,
“已检查气缸”:“9”
},
{
"0": "2021-05-30 18:32:28",
"1": "1",
"2": "8",
“日期”:“2021-05-30 18:32:28”,
“ProdRate”:“1”,
“已检查气缸”:“8”
},
{
"0": "2021-05-30 09:20:19",
"1": "1",
"2": "8",
“日期”:“2021-05-30 09:20:19”,
“ProdRate”:“1”,
“已检查气缸”:“8”
}
]
功能报告(结果、日期){
var总体=[],
生产率=[],
sum1=0,
sum2=0;
for(让x作为结果){
push(parseInt(结果[x].CheckedCylinders));
push(parseInt(结果[x].prodRate));
}
用于(总共x个和生产速率(&P){
sum1=sum1+总和[x];
sum2=sum2+生产率[x];
}
sum2=sum2/sum1;
对于(日期中的变量x){
$(“.degassingReportbody”).append(`
${dates[x]}
${sum1}
${sum2}
`);
}
}
功能除气报告(数据){
//日期和时间总循环检查生产率
$(“.degasingReportHead”)。追加(`
日期和时间
检查的共青团总数
生产率
`);
让日期=[];
for(让x输入数据){
date.push(数据[x].date.split(“”[0]);
}
设newDate=newset(日期);
让dates=[…newDate];
对于(日期中的变量x){
结果=数据过滤器(功能(obj){
返回对象日期分割(“”[0]==日期[x];
});
}
报告(结果、日期);
}
脱气报告(数据)
使用reduce的解决方案:
let数据=[{
"0": "2021-05-31 09:10:27",
"1": "1",
"2": "1",
“日期”:“2021-05-3109:10:27”,
“ProdRate”:“1”,
“已检查气缸”:“1”
},
{
"0": "2021-05-30 22:03:32",
"1": "1",
"2": "4",
“日期”:“2021-05-30 22:03:32”,
“ProdRate”:“1”,
“已检查气缸”:“4”
},
{
"0": "2021-05-30 18:41:34",
"1": "1",
"2": "9",
“日期”:“2021-05-30 18:41:34”,
“ProdRate”:“1”,
“已检查气缸”:“9”
},
{
"0": "2021-05-30 18:32:28",
"1": "1",
"2": "8",
“日期”:“2021-05-30 18:32:28”,
“ProdRate”:“1”,
“已检查气缸”:“8”
},
{
"0": "2021-05-30 09:20:19",
"1": "1",
"2": "8",
“日期”:“2021-05-30 09:20:19”,
“ProdRate”:“1”,
“已检查气缸”:“8”
}
]
var groupBy=函数(xs,键){
返回x.reduce(功能(rv,x){
设k=x[key]。拆分(“”[0];
if(rv[k]){
rv[k][0]+=+x.ProdRate;
rv[k][1]+=+x.检查气缸;
rv[k][2]+=rv[k][0]/rv[k][1];
}否则{
rv[k]=[+x.生产速率,+x.检查气缸,(+x.生产速率)/(+x.检查气缸)];
}
返回rv;
}, {});
};
var groubedByDay=groupBy(数据“日期”);
脱气报告(按日提交);
功能除气报告(数据){
//日期和时间总循环检查生产率
$(“.degasingReportHead”)。追加(`
日期和时间
检查的共青团总数
生产率
`);
for(数据中的变量x){
$(“.degassingReportbody”).append(`
${x}
${datas[x][1]}
${datas[x][2]}
`);
}
}
使用reduce的解决方案:
let数据=[{
"0": "2021-05-31 09:10:27",
"1": "1",
"2": "1",
“日期”:“2021-05-3109:10:27”,
“ProdRate”:“1”,
“已检查气缸”:“1”
},
{
"0": "2021-05-30 22:03:32",
"1": "1",
"2": "4",
“日期”:“2021-05-30 22:03:32”,
“ProdRate”:“1”,
“已检查气缸”:“4”
},
{
"0": "2021-05-30 18:41:34",
"1": "1",
"2": "9",
“日期”:“2021-05-30 18:41:34”,
“ProdRate”:“1”,
“已检查气缸”:“9”
},
{
"0": "2021-05-30 18:32:28",
"1": "1",
"2": "8",
“日期”:“2021-05-30 18:32:28”,
“ProdRate”:“1”,
“已检查气缸”:“8”
},
{
"0": "2021-05-30 09:20:19",
"1": "1",
"2": "8",
“日期”:“2021-05-30 09:20:19”,
“ProdRate”:“1”,
“已检查气缸”:“8”
}
]
var groupBy=函数(xs,键){
返回x.reduce(功能(rv,x){
设k=x[key]。拆分(“”[0];
if(rv[k]){
rv[k][0]+=+x.ProdRate;
rv[k][1]+=+x.检查气缸;
rv[k][2]+=rv[k][0]/rv[k][1];
}否则{
rv[k]=[+x.生产速率,+x.检查气缸,(+x.生产速率)/(+x.检查气缸)];
}
返回rv;
}, {});
};
var groubedByDay=groupBy(数据“日期”);
脱气报告(按日提交);
功能除气报告(数据){
//日期和时间总循环检查生产率
$(“.degasingReportHead”)。追加(`
日期和时间
检查的共青团总数