我看到這需要一個程序,數字秒轉換成秒,分鐘,小時,天,多年的問題在網上和我能想出這個功能下面秒到人類可讀的遞歸函數
var arrTime = [];
function formatD(seconds){
if(seconds > 0){
if(seconds >= 1 && seconds <= 59){
arrTime.push(seconds === 1 ? "1 second" : seconds + " seconds");
return arrTime;
}else
if(seconds >= 60 && seconds <= 3599){
arrTime.push(seconds === 60 ? "1 minute" : Math.floor(seconds/60) + " minutes");
formatD(seconds - (Math.floor(seconds/60) * 60));
}else
if(seconds >= 3600 && seconds <= 86399){
arrTime.push(seconds === 3600 ? "1 hour" : Math.floor(seconds/3600) + " hours");
formatD(seconds - (Math.floor(seconds/3600) * 3600))
}else
if(seconds >= 86400 && seconds <= 31535999){
arrTime.push(seconds === 86400 ? "1 day" : Math.floor(seconds/86400) + " hours");
formatD(seconds - (Math.floor(seconds/86400) * 86400))
}else{
arrTime.push(seconds === 31536000 ? "1 year" : Math.floor(seconds/31536000) + " years");
formatD(seconds - (Math.floor(seconds/31536000) * 31536000))
}
}
}
我研究我的代碼,並與我的基本知識遞歸,我認爲這將返回一個數組,包括結果,例如,如果我進入
formatD(63)
我期望看到:
["1 minute", "3 seconds"]
但我一直沒有返回值..任何修復或某事在這裏做錯了嗎?
因爲除了第一個if塊以外,你沒有返回任何東西。 –
剛剛意識到@PatrickEvans – olayemii