首先对不起,如果我发布这个问题在一个错误的论坛上,我知道有几种不同类型的问题。我的问题是如何实现问题的解决方案,而不是实际代码本身的问题。需要审查我的解决方案。计算开放门票的平均天数
想象一下,您有一个支持系统,用户可以在其中提交门票(很像一个托管系统)。门票可以有多个状态,例如“提交/分配”等,直到它“关闭”。
现在假设您想要票据已打开的平均天数(即从其提交直到关闭为止)。你一周一周都需要这些数字。你会如何解决这个问题?
我所做的就是等价于下面的伪代码。
Pick out all tickets that have ever existed and are in any state = alltheticketsarray
for(var i =0; i<alltheticketsarray.length; i++){
var weekarray = //determine which date that is smallest/largest and create an array containing all those weeks and weeks in between. Creating an empty object inside each index with the year-week as a key.
}
for(var i =0; i < alltheticketsarray.length; i++){
var startdate = //picking out which date a ticket is submitted, converting it into a year-week number to know in which index in weekarray to start.
var stop = //getting the week number when the ticket is closed, if not avaliable stop=weekarray.length
for(var k =startdate; k < stop; k++){
//add number of days the ticket has been open so far to weekarray, that is
number of days so far
add that number to weekarray[k].opendays += convertToDays(weekarray[k] - weekarray[startdate])
if(weekarray[k]===weekarray[startdate]){
use moment.js to get which day number (1-7) the submittet value is and add hat value to weekarray[k].opendays
}
weekarray[k].opentickets++;
}
}
然后拿到avarage天的门票已经开了,每星期我拿weekarray[k].opendays/weekarray[k].opentickets
请问这是怎么也能解决这个问题?我问的原因是我不断收到不合理的高价值,比如平均70天,我不确定这是否正确。
首先要做的是在纸上创建一个示例并验证它是否正确。如果你不知道结果是否正确,那么我们也无法做到这一点。 –