2013-10-09 2 views
4

У меня есть объект javascript, и я хотел бы подсчитать количество записей в этом объекте. Я пробовал длину и размер, но я не получаю счет.Count Записи в объекте Javascript

Объект

var person = new Object(); 
    person.name = null; 
    person.age = null; 
    person.gender = null; 

я затем заполнить этот объект с данными, как;

person.name = 'John'; 
person.age = 20; 
person.gender = 'M'; 

person.name = 'Smith'; 
person.age = 22; 
person.gender = 'M'; 

Я хотел бы вернуть счет с двумя строками данных.

+0

спасибо, что указал – devdar

+0

Что вы имеете в виду по количеству записей в объекте? – PSL

+1

Ваш объект не содержит двух записей, он содержит три свойства, которые вы перезаписываете вторым набором значений. Объекты не имеют длины (если вы не добавите их самостоятельно); здесь вам нужен массив объектов, а не один объект. – nnnnnn

ответ

8

То, что вы хотите, это массив объектов:

var people = [ 
    { name: "John", age: 20, gender: "M" }, 
    { name: "Smith", age: 22, gender: "M" } 
]; 

Из этого вы можете получить длину выключения массива:

people.length; // 2 

И вы можете захватить конкретных людей на основе их индекса:

people[0].name; // John 
+2

OK спасибо, что я искал – devdar

+0

, если мне нужно добавить данные в этот массив, это будет как people.push ('Smith', 20.'M '); ? – devdar

+0

@dev_darin Нажать новый объект literal: 'people.push ({name:" Jane ", возраст: 20, пол:" F "});'. – Sampson

1

Вы просто меняете один и тот же объект. Таким образом, счетчик всегда будет равен 1. Если вы хотите, чтобы количество объектов определяло массив и присваивало каждому объекту этому. Тогда вы можете получить счет.

var perarray= new Array(); 
var person = new Object(); 
    person.name = null; 
    person.age = null; 
    person.gender = null;  
person.name = 'John'; 
person.age = 20; 
person.gender = 'M'; 

perarray[0]=person; 

person.name = 'Smith'; 
person.age = 22; 
person.gender = 'M'; 
perarray[1]=person; 

alert(perarray.length); 
Смежные вопросы