Я пытаюсь проверить длину здесь. Испытанное количество. Есть ли что-то, что я пропускаю?
var dNames = {};
dNames = GetAllNames();
for (var i = 0, l = dName.length; i < l; i++)
{
alert("Name: " + dName[i].name);
}
dNames содержит пары имя/значение. Я знаю, что dNames имеет значения в том объекте, но он все еще полностью перескакивает через это и когда я предупреждаю даже dName.length, очевидно, что это не то, как сделать это..., таким образом, не уверенное. Искавший это в сети. Ничего не мог найти на этом.
Этот вопрос сбивает с толку. Обычный объект {}
не имеет свойства length
, если только вы не собираетесь создать собственный конструктор функции, который генерирует пользовательские объекты, у которых оно есть (в этом случае вы не использовали не уточняю).
Это означает, что вы должны получить «длину» с помощью оператора for..in
для объекта, поскольку length
не установлена, и увеличить счетчик.
Я не понимаю, зачем вам нужна длина
. Вы вручную устанавливаете 0
для объекта или полагаетесь на настраиваемые строковые ключи? например, obj ['foo'] = 'bar';
. Если последнее, опять же, зачем нужна длина?
Редактировать # 1 : Почему вы просто не можете сделать это?
list = [ {name:'john'}, {name:'bob'} ];
Затем перебрать список? Длина
уже установлена.
var c = {'a':'A', 'b':'B', 'c':'C'};
var count = 0;
for (var i in c) {
if (c.hasOwnProperty(i)) count++;
}
alert(count);