2017-01-30 8 views
0

Ich verwende eine switch-Anweisung, um Eingabedaten aus einer HTML-Textbox zu übernehmen.Verwenden einer Switch-Anweisung zum Erstellen einer neuen Variablen

Bisher war es erfolgreich.

Mein nächster Schritt ist der folgende: Wenn der Benutzer die Zahl 20 eingibt, möchte ich neue Daten in eine Variable namens "coordinates" eingeben, damit sie im gesamten Programm verwendet werden kann.

Bisher kann ich keine Daten aus der Variablen "coordinates" verwenden. Irgendwelche Vorschläge?

switch(Number($('#inputdata').val())){ 
case 20: 
var coordinates = { 
     latt1: 12, 
     lngg2: 34 
} 
break; 
} 
+0

Definieren Sie var-Koordinaten oben und tun Sie einfach coordinates = {}; (var entfernen) im Schalter. – mehulmpt

+0

sollten Sie die Koordinatenvariable außerhalb von 'switch' statement deklarieren. Setzen Sie einfach den Variablenwert innerhalb von 'switch'. –

Antwort

1

Machen Sie Ihre Variable global?

var coordinates; 

switch(Number($('#inputdata').val())){ 
case 20: 
coordinates = { 
     latt1: 12, 
     lngg2: 34 
} 
break; 
} 
0

Sie müssen diese Eingangsdaten speichern in die Koordinaten variable

var coordinates = { 
     latt1: Number($('#inputdata').val()), 
     lngg2: 34 
} 
0

Sie benötigen eine Variable außerhalb der switch-Anweisung haben. Ich würde darüber nachdenken, es in einem Verschluss setzen wie so:

function getCoordinates(element){ 
    var coordinates = {}; 
    // the closure is an immediately invoked function 
    // that sets the coordinates variable according to 
    // to the switch statements; 
    var coord = function(){ 
     switch(parseInt(element.val())) 
     // case statements 
     coordinates = {"latt1":12,"lngg2":34}; 
    }(); 
    // ^^ means run this function now 
    return coordinates; 
} 

Dann können Sie einfach die Rückkehr der äußeren Funktion einer Variablen zuweisen.

var c = getCoordinates($('#inputdata')); 

Die hier Vorteile sind, dass Sie den globalen Namensraum mit einer globalen Variablen nicht verschmutzen kann, ist Ihre Koordinaten variable private Daten, und Sie können die Funktion params leicht ändern, wenn Sie eine Tonne haben, nicht wollen von Switch-Anweisungen.

0

Ich würde argumentieren, dass die Variable außerhalb des Schalters zu deklarieren und zuweisen ist keine gute Idee, auf lange Sicht kann es Ding schwieriger zu debuggen machen.

würde ich eine Funktion machen, die den gewünschten Wert zurück und weisen Sie koordiniert

function inputToCoordinate (inputValue) { 
    switch(inputValue) { 
    case 20: 
     return { 
     latt1: 12, 
     lngg2: 34 
     } 
    // ... 

    } 
} 

var input = $('#inputdata').val(); 
var coordinates = inputToCoordinate(parseInt(input, 10)) 

Auch ich bin kein großer Fan von Schalter Aussage, aber das ist eine andere Diskussion.

Verwandte Themen