首先對不起,如果我發佈這個問題在一個錯誤的論壇上,我知道有幾種不同類型的問題。我的問題是如何實現問題的解決方案,而不是實際代碼本身的問題。需要審查我的解決方案。計算開放門票的平均天數
想象一下,您有一個支持系統,用戶可以在其中提交門票(很像一個託管系統)。門票可以有多個狀態,例如「提交/分配」等,直到它「關閉」。
現在假設您想要票據已打開的平均天數(即從其提交直到關閉爲止)。你一週一週都需要這些數字。你會如何解決這個問題?
我所做的就是等價於下面的僞代碼。
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天,我不確定這是否正確。
首先要做的是在紙上創建一個示例並驗證它是否正確。如果你不知道結果是否正確,那麼我們也無法做到這一點。 –