2013-10-09 68 views
4

我有一個javascript對象,我想計算該對象中的記錄數。我已經嘗試過長度和大小,但我沒有得到一個計數。在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

好的,謝謝這是我正在尋找的 – devdar

+0

如果我必須添加數據到這個數組將會像people.push('Smith',20.'M'); ? – devdar

+0

@dev_darin推送一個新的對象文字:'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);