tags:

views:

4948

answers:

2

Hi,

I have a request that returns a JSON object with a single property which is an array. How can I test if the array is empty?

With jQuery code like:

 $.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");
                });

what can I put instead of if(data.RoleOwners == [ ]) to test if the RoleOwners is an empty array?

Thanks, Matt

+6  A: 
(data.RoleOwners.length === 0)
svinto
I don't understand. Why -1? „![].length“ — would be shorter and correctly, imho.
Edy Gomolyako
Agreed, should be .length === 0, or ![].length as said above. Either way this question is not about JSON objects at all, but Javascript arrays.
balupton
(data.RoleOwners.length == 0) works for me as well (in comparable situation)...
Jan
A: 

Lol thanks for that, thought I'd tried that, but I must have tried .Length instead.

mattcole