2017-01-30 186 views
0

我正在使用switch語句從HTML文本框中獲取輸入數據。使用switch語句創建新變量

到目前爲止,它已經成功。

我的下一步是如下:如果用戶輸入數字20,我想輸入新的數據到一個名爲「座標」的變量中,以便它可以在整個程序中使用。

到目前爲止,我無法使用變量「座標」中的數據。有什麼建議麼?

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

定義上面的var座標,只需要座標= {}; (刪除var)在開關。 – mehulmpt

+0

你應該在'switch'語句外聲明座標變量。只需在'switch'中設置變量值即可。 –

回答

1

讓您的變量爲全局?

var coordinates; 

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

你需要這個輸入數據保存到你的座標變量

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

你需要有switch語句之外的變量。我會考慮把它在一個封閉像這樣:

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; 
} 

然後,你可以指定外部函數的一個變量的迴歸。

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

的好處這裏是您不使用全局變量污染全局命名空間,你的座標變量是私有數據,你可以很容易地修改函數PARAMS,如果你不希望有一噸的switch語句。

0

我會爭辯說,在開關外部聲明變量並分配它不是一個好主意,從長遠來看,它可能使事情更難以調試。

我會作出這樣的返回所需的值的函數,並把它分配給協調

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

    } 
} 

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

而且我不開關聲明的忠實粉絲,但那是另一個討論。