2014-07-16 67 views
0

當我嘗試將某些東西添加到已初始化它的「Enfant」數組中時,該怎麼辦?在這種情況下,當我向它添加一個字符串時,它給了我3。在聯合陣列中添加數據

var person=[]; 

function addPerson(n,a){ 
    person.push({ "Name" : n, "Age" : a, "Kid" : []}); 

} 

addPerson(「Julie」,100); addPerson(「Sarah」,83);

function addKid(parentName,kidName){ 

    for(var i=0;i<person.length;i++){ 
     if (parentName== person[i].Name){ 
      person[i].Kid=person.push(kidName); 
    } 
    } 
} 

addKid("Julie","Sarah"); 
print(person[0].Kid); //<--- gives me 3 

回答

0

你應該做的,而不是person[i].Kid.push

function addKid(parentName,kidName){ 

    for(var i=0;i<person.length;i++){ 
     if (parentName== person[i].Name){ 
      person[i].Kid.push(kidName); 
    } 
    } 
} 
+0

thx。可以說我想打電話給孩子的父母的年齡。人[0] .Kid [0]。年齡給出空白。我必須在這個年齡重新推動? – user3268216

+0

@ user3268216是的,或者你可以將行更改爲'person [1] .Kid.push({「Name」:kidName,「Age」:kidAge,「Kid」:[]});'並且添加'kidAge'到函數定義。 – parchment

1

Array.push返回數組中元素的推後的數字,這是你分配給person[i].Kid