typescript - Optimiere if else Bedingung JavaScript
Ich habe eine TypeScript-Methode. Sie wandelt/mappt ganze Zahlenwerte in Wochentage als Zeichenketten um. Wie kann ich diesen Code in etwas Effizienteres verbessern? Irgendwelche Ideen?
private _convertIntToStringDays(days: any){
let dayArray: any = [];
for (let day in days){
if (days[day] == 1){
dayArray.push('monday');
}
else if (days[day] == 2){
dayArray.push('tuesday');
}
else if (days[day] == 3){
dayArray.push('wednesday');
}
else if (days[day] == 4){
dayArray.push('thursday');
}
else if (days[day] == 5){
dayArray.push('friday');
}
else if (days[day] == 6){
dayArray.push('saturday');
}
else if (days[day] == 0){
dayArray.push('sunday');
}
}
dayArray.shift(dayArray[0]);
console.log(dayArray);
return dayArray;
}
Antwort #1
Verwenden Sie ein Array...
function dayNumberToString(dayNumber) {
return ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'][dayNumber % 7]
}
Antwort #2
Verwenden Sie eine Nachschlagetabelle:
const dayNames = [ "Sunday", "Monday", "Tuesday", .... ]
console.log(dayNames[1]) // gives you Monday
[1,0,2].map(x => dayNames[x]) // converts an array of day numbers
