Как использовать JQuery для добавления подмассива в JSON? - PullRequest
0 голосов
/ 09 сентября 2011

Я пытаюсь создать объект JSON следующим образом:

var request = {
    location : pyrmont,
    radius : '50000',
    types: ['amusement_park', 'store'] //Here I want to replace with a javascript array 
};

Этот JSON отлично работает как вход для API Карт Google, но когда я пытаюсь заменить на массив javascript как таковой не работает. Любая помощь приветствуется!

var allVals = [];
$('#geo_form :checked').each(function() {
  allVals.push("'" + $(this).val() + "'");
});
alert("allVals -> " + allVals);  //allVals -> 'amusement_park','lodging'

var request = {
    location : pyrmont,
    radius : '50000',
    //types: ['amusement_park', 'store']
    types: [allVals]
};

1 Ответ

3 голосов
/ 09 сентября 2011

allVals - это уже массив, вам не нужно заключать его в квадратные скобки в объекте request.Оборачивая массив в скобки, вы устанавливаете массив allVals в качестве индекса с наибольшим нулем для нового массива.

var request = {
    location : pyrmont,
    radius : '50000',
    types: allVals
};

Кроме того, вам не нужно заключать значение в кавычки при его нажатиик массиву, поскольку он уже является String объектом.

Фактически, вы могли бы избежать объявления переменной вне объекта запроса, создав изначально пустой массив в объекте запроса и передав объект непосредственнодоступ к свойству.

Пример:

var request = {
    types : []
};
request.types.push($(this).val());

Для большинства проблем со структурой данных целесообразно распечатать объект в консольном отладчике, чтобы увидеть, какие значения содержатся в нем.внутри объекта.В Firefox есть популярные firebug, Chrome, Opera, а в новых версиях IE встроен консольный отладчик. Для печати используйте метод console.log(arg).

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