Длина массива возвращается как неопределенная при включении ключа и значения

Jquery

var a = {};
$('#individual_users_result').find("li").each(function() {
    var added_domains = $(this).attr('data-id');
    var added_domains_text = $(this).text().trim();
    a[added_domains] = added_domains_text;
})

Я создаю массив, в который я включаю ключ и значение. Я пытаюсь определить, является ли массив пустым или нет. Я подтвердил использование console.log(a) результаты и он производит именно то, что мне нужно.

Когда я использую это, чтобы узнать, не является ли массив пустым, я получаю undefined на a.length

if (a.length !== 0) {
    alert(a.length)
}

Если я изменю это

a[added_domains] = added_domains_text;

к этому

a = added_domains_text;

Тогда я получаю длину 39

О чем я добавляю значение ключа при создании массива, в результате чего мой код показывает length как undefined?

2 ответа

Решение

Должно быть: var a = [];для пустого массива нет {}

Пример:

var a = [item1, item2, item3];

Используя

var a = {};

вы инициализируете объект; не массив.

Для массива используйте

var a = [];
Другие вопросы по тегам