У меня есть объект который создается из вызова базы данных в следующем формате:Javascript/JQuery неопределенный объект длина
Object { group1={...}, same=null, group2=null}
Я пытаюсь получить количество элементов в group1, group2 и тому же.
я к нему доступ через консоль, так как:
dataObj.group1.length
В изображении выше, это возвращает неопределенное значение. Однако, если у меня есть более одного элемента в group1
, он возвращает счет просто отлично. Похоже, что это вызывает проблемы только в том случае, если в объекте/массиве есть один элемент.
Есть ли функция, которая может использоваться для учета этих возможностей и возвращает length
элементов в этих объектах выше?
Update:
Это, как я создаю мои данные:
success: function(data) {
// Define our data response
var d = data.data;
// Push our data to an object
dataObj = {
same: (d.same ? d.same.tools : null),
group1: (d.group1 ? d.group1.tools : null),
group2: (d.group2 ? d.group2.tools : null)
}
// Render our table
renderCompare();
}
Отсюда, я пытаюсь получить количество элементов в same
, group1
, group2
.
Это пример того, когда в ответе содержится более одного элемента. Я могу получить доступ к этому, используя dataObj.group1.length
, и он возвращает 2
, что является правильным. Все, что я пытаюсь понять, как справиться с этим, когда есть только результат 1
.
Я смущен вопросом. Вы ищете способ подсчета количества свойств объекта? – stackoverfloweth
Объекты не имеют длины, поэтому вы должны получить 'undefined', независимо от того, сколько свойств group1 имеет 1 или иначе. – Archer
@Archer, почему это будет работать, когда в группе 1 есть два элемента, а затем один элемент? – SBB