Ответ 1
(data.RoleOwners.length === 0)
У меня есть запрос, который возвращает объект 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
(data.RoleOwners.length === 0)
Вы также можете сделать jQuery.isEmptyObject(data.RoleOwners)
ниже код работает отлично, не нужно писать один из ваших.
// anyObjectIncludingJSON i tried for JSON object.
if(jQuery.isEmptyObject(anyObjectIncludingJSON))
{
return;
}
Массив (являющийся также объектом) может иметь не числовые свойства, которые не подхватываются путем тестирования нулевой длины. Вам нужно выполнить итерацию по свойствам, точно так же, как тестирование для пустого объекта. Если нет никаких свойств, массив пуст.
function isEmptyObject(obj) {
// This works for arrays too.
for(var name in obj) {
return false
}
return true
}