2017-01-30 19 views
0

switch文を使用してHTMLテキストボックスから入力データを取得しています。switch文を使用して新しい変数を作成する

これまでのところ、成功しています。

次のステップは次のとおりです。ユーザーが20番を入力した場合、新しいデータを「座標」という変数に入力してプログラム全体で使用できるようにしたいと考えています。

これまでのところ、変数 "coordinates"のデータは使用できません。助言がありますか?

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

あなたはswitch文の外にあなたの変数を持っている必要があります

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

あなたの座標変数にこの入力データを保存する必要があります。私は閉鎖のようにそれを入れようと考えています:

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を変更することができますスイッチステートメントの

0

私は、スイッチの外側で変数を宣言して割り当ててもよいとは言いませんが、長期的にはデバッグするのが難しくなります。

私が所望の値を返す関数を作成し、協調

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

    } 
} 

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

にそれを割り当てます。また、私はスイッチ文の大ファンではないんだけど、それは別の議論です。

関連する問題