我正在使用switch语句从HTML文本框中获取输入数据。
到目前为止,它已经取得了成功。
我的下一步是:如果用户输入数字20,我想将新数据输入到名为“坐标”的变量中,以便在整个程序中使用它。
到目前为止,我无法使用变量“coordinates”中的数据。有什么建议吗?
switch(Number($('#inputdata').val())){
case 20:
var coordinates = {
latt1: 12,
lngg2: 34
}
break;
}
答案 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 声明的忠实粉丝,但这是另一个讨论。