2017-01-30 3 views
0

Я использую оператор switch для ввода входных данных из текстового поля HTML.Использование оператора switch для создания новой переменной

До сих пор он был успешным.

Мой следующий шаг следующий: если пользователь вводит номер 20, я хотел бы ввести новые данные в переменную с названием «координаты», чтобы ее можно было использовать во всей программе.

До сих пор я не мог использовать данные из переменных «координат». Какие-либо предложения?

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

Определите координаты переменных выше и просто выполните координаты = {}; (удалить 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

Вы должны иметь переменную вне заявление переключателя. Я бы думать о помещении его в затворе так:

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)) 

Кроме того, я не большой поклонник переключатель заявление, но это другое обсуждение.

Смежные вопросы