Website-Suche

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