使用switch语句创建新变量

时间:2017-01-30 18:33:24

标签: javascript jquery

我正在使用switch语句从HTML文本框中获取输入数据。

到目前为止,它已经取得了成功。

我的下一步是:如果用户输入数字20,我想将新数据输入到名为“坐标”的变量中,以便在整个程序中使用它。

到目前为止,我无法使用变量“coordinates”中的数据。有什么建议吗?

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

4 个答案:

答案 0 :(得分:1)

让你的变量全局化吗?

var coordinates;

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

答案 1 :(得分:0)

您需要将此输入数据保存到坐标变量

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

答案 2 :(得分: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'));

这里的好处是您不会使用全局变量污染全局命名空间,您的坐标变量是私有数据,如果您不想拥有大量的switch语句,则可以轻松修改函数参数。

答案 3 :(得分:0)

我认为在交换机外声明变量并分配它并不是一个好主意,从长远来看,它可能会使调试更加困难。

我会创建一个返回所需值的函数并将其分配给协调的

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

  }
}

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

此外,我不是 switch 声明的忠实粉丝,但这是另一个讨论。