2016-12-23 4 views
-1

Gibt es eine Javascript-Fall-Typ-Funktion zum Festlegen einer Variablen, wie der folgende Code ausführen würde? Ich sehe eine Funktion CASE aber es scheint nicht wirklich so viel effizienter aus einer Zeilennummer FußabdruckJavascript - Reduzieren Sie die Anzahl der IF-Anweisungen

if (i == 1){ 
    ResToUse = Res1 
    } 

    if (i == 2){ 
    ResToUse = Res2 
    } 

    if (i == 3){ 
    ResToUse = Res3 
    } 

    if (i == 4){ 
    ResToUse = Res4 
    } 

    if (i == 5){ 
    ResToUse = Res5 
    } 

    if (i == 6){ 
    ResToUse = Res6 
    } 

    if (i == 7){ 
    ResToUse = Res7 
    } 

    if (i == 8){ 
    ResToUse = Res8 
    } 

    if (i == 9){ 
    ResToUse = Res9 
    } 

    if (i == 10){ 
    ResToUse = Res10 
    } 

    if (i == 11){ 
    ResToUse = Res11 
    } 

    if (i == 12){ 
    ResToUse = Res12 
    } 
+0

ein Make Array von Res und dann den Index als Index im Array. Und am Ende könntest du ein 'res [i] || machen defaultValue – Akxe

+0

Es gibt viele verschiedene Lösungen für diese Art von Problem, in der Regel eine Form von Lookup-Tabelle (Objekt, Array, etc.). Einiges davon hängt davon ab, was genau Sie erreichen wollen - das kann so einfach sein wie ein Array oder so komplex wie ein Abhängigkeits-Injektionssystem. – PMV

Antwort

3

Sie können einen Array verwenden. Wie folgt aus:

var resArray = [Res1, Res2,...]; 
ResToUse = resArray[i - 1]; 
0

mit window Objekt Versuchen:

ResToUse = window['Res'+1]; 
+0

Während dies wahrscheinlich in den meisten Fällen funktioniert, würde ich es vermeiden, da der Umfang unterschiedlich sein kann. Ein Array wird eine bessere Option sein. –

+0

OP ist auf der Suche nach weniger Code zu schreiben, was Sie denken, dass das Erstellen von Array weniger Code im Vergleich zu meinem Beitrag benötigt? – Arvind

0

Je nach Umfang Ihrer Objekte könnten Sie einfach tun ResToUse = window['Res'+i]

0

Sie verwenden können eval()
ResToUse = eval ("Res" + i);

+0

Fügen Sie weitere Informationen zu dieser Antwort und der unteren Seite von 'eval()' hinzu – Blag

Verwandte Themen