Подтвердить что ты не робот

Тестирование пустого объекта массива в JSON с помощью jQuery

У меня есть запрос, который возвращает объект JSON с единственным свойством, являющимся массивом. Как проверить, пуст ли массив?

С кодом jQuery, например:

 $.getJSON(
            jsonUrl,
            function(data) {
                if (data.RoleOwners == [ ]) {
                    $('<tr><td>' + noRoleOwnersText + '</td></tr>').appendTo("#roleOwnersTable tbody");
                    return;
                }
                $.each(data.RoleOwners, function(i, roleOwner) {
                    var tblRow =
                    "<tr>"
                    + "<td>" + roleOwner.FirstName + "</td>"
                    + "<td>" + roleOwner.LastName + "</td>"
                    + "</tr>"
                    $(tblRow).appendTo("#roleOwnersTable tbody");
                });

что я могу поставить вместо if (data.RoleOwners == []), чтобы проверить, является ли RoleOwners пустым массивом?

Спасибо, Matt

4b9b3361

Ответ 1

(data.RoleOwners.length === 0)

Ответ 3

ниже код работает отлично, не нужно писать один из ваших.

   // anyObjectIncludingJSON i tried for JSON object.

         if(jQuery.isEmptyObject(anyObjectIncludingJSON))
            {
                return;
            }

Ответ 4

Массив (являющийся также объектом) может иметь не числовые свойства, которые не подхватываются путем тестирования нулевой длины. Вам нужно выполнить итерацию по свойствам, точно так же, как тестирование для пустого объекта. Если нет никаких свойств, массив пуст.

function isEmptyObject(obj) {
   // This works for arrays too.
   for(var name in obj) {
       return false
   }
   return true
}