получение переменных / объектных элементов и значений в JavaScript - PullRequest
0 голосов
/ 11 ноября 2009

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

У меня есть переменная javascript, которая содержит группу значений, подобных этой

var my_variables = {
             first_var: 'starting',
             second_var: 2,
             third_var: 'continue',
             forth_var: 'end'
}

Теперь я пытаюсь получить эти переменные в моем скрипте, но я не хочу проверять каждую из них. Прямо сейчас я делаю это

if(my_variables.first_var!=null){
   query=query+'&first_var='+my_variables.first_var;
}
if(my_variables.second_var!=null){
   query=query+'&second_var='+my_variables.second_var;
}...

Я надеюсь, что есть простой способ рекурсивного прохождения объекта, но я не смог найти, как это сделать. Что-то вроде

 
foreach(my_variables.??? as varName){
    query=query+'&'+varName+'='+my_variables.varName;
}

Ответы [ 2 ]

2 голосов
/ 11 ноября 2009

Попробуйте это:

for(var key in my_variables)
  query += '&'+key+'='+encodeURIComponent(my_variables[key]);
1 голос
/ 11 ноября 2009

for (var varName in my_variables) { query=query+'&'+varName+'='+my_variables[varName]; }

for (... in ...) - это то, как вы пишете этот вид цикла в Javascript. Также используйте квадратные скобки вместо точки, когда имя поля является значением вместо фактического идентификатора, как здесь. Кстати, я бы также предложил использовать window.encodeURIComponent, если ваши значения могут содержать произвольный текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...