sah ich eine Frage online, die ein Programm benötigten numerische Sekunden in Sekunden, Minuten zu konvertieren, Stunden, Tage, Jahre und ich war in der Lage mit dieser Funktion zu kommen unterSekunden Klar rekursive Funktion
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))
}
}
}
ich habe meinen Code und mit meinem Grunde Rekursion Wissen studiert, dachte ich, das ein Array mit dem Ergebnis, zum Beispiel zurückkommen würde, wenn ich
formatD(63)
eingegeben
i erwartet, um zu sehen:
["1 minute", "3 seconds"]
Aber ich bekomme keinen Rückgabewert..irgend damit oder irgendwas macht hier was falsch?
Weil Sie nichts zurückgeben, außer im ersten if-Block. –
gerade realisiert, dass @PatrickEvans – olayemii