я сначала получить ответ AJAX из {"B":{"1":"100","3":{"AA":256}},"A":100}
и преобразуется в JavaScript Object:Как вы рекурсивно удаляете вложенные объекты, содержащие пустой массив?
var jsonOBJ = {};
jsonOBJ = jQuery.parseJSON(data);
Будущие ответы могут быть подмножествами или надмножествами исходного ответа. Если значение таблицы остается неизменным на сервере, застоявшиеся данные заменяются пустым массивом. Пример:
{"B":{"1":"90","2":200,"3":[]}}
{"B":[],"A":20}
Каждый раз, когда ответное АЯКС получен, объект обновляется с:
jQuery.extend(true, jsonOBJ, jQuery.parseJSON(data));
Но мне нужен JavaScript Object, чтобы сохранить неизменными части, так что я необходимо довести до объекта, который будет эквивалентен следующему с приведенными выше примерами ответов:
jsonOBJ = jQuery.parseJSON('{"B":{"1":"90","2":200,"3":{"AA":256}},"A":20}');
Моим предпочтительным вариантом было бы удалить пустые объекты из преобразованного ответа. Есть ли существующая функция или модификация функции расширения jQuery, которая бы это сделала?
Я вижу ваше определение, но когда бы метод не существует? – shaun5
@ shaun5 - У старых браузеров нет 'Array.isArray()', поэтому мы уверены, что он определен даже для них, не заменяя его, если он уже существует. – jfriend00
@ shaun5 - Добавлен рабочий jsFiddle: http://jsfiddle.net/jfriend00/U6qMH/ – jfriend00