我下面的代码将最后生成的对象添加到Person对象的phone数组中。我正在尝试做的是能够将所有生成的对象添加到phone数组中。

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)中:



第二次循环时,第一个对象被替换



您将如何避免这个问题?

最佳答案

person.phones = person.phones.concat(phoneObjs);

关于javascript - 如何将多个对象添加到对象内部的数组中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22048025/

10-12 15:16