2014-02-26 218 views
0

我的代碼如下將最後生成的Object添加到Person對象的phones數組中。我想要做的是能夠將所有生成的對象添加到手機數組中。如何將多個對象添加到對象內的數組

var person = { 
    username : username, 
    phones : [] 
} 

// Added Profile 
var phoneObjs = {}; 
var addedPhones = $('.added_phone'); 

,通過所有新.added_phone輸入值循環功能:

addedPhones.each(function(i) { 
    var tag = $(this).children("label").text(); 
    var value = $(this).children("input").val(); 
    phoneObjs = $(this).map(function(i,el) { 
     var $el = $(el); 
     return { 
      tag: tag, 
      label: value 
     } 
    }).get(); 

    console.log(phoneObjs); 

    person.phones = phoneObjs; 
    // person.phones.push(phoneObjs); 

    console.log(person.phones); 
}); 

我將創建2個新的輸入框,輸入2個不同的數字,接下來我提交表單並運行功能以上。從Chrome控制檯console.log(person.phones)

enter image description here

它繞一圈第二次,第一個對象被替換
enter image description here

你將如何避免這個問題?

+0

爲什麼您評論推送電話? –

+2

嘗試concat像'person.phones = person.phones.concat(phoneObjs);' –

+0

@MinkoGechev推動最終創建一個數組內部和對象的數組。而不是在對象數組中的對象 –

回答

2
person.phones = person.phones.concat(phoneObjs); 
+0

謝謝!就是這樣:)我嘗試了'推',但最終把數組而不是對象的數組放在裏面 –