繁体   English   中英

如何将多个对象添加到对象内的数组中

[英]How to add multiple Objects into an Array inside an Object

我下面的代码会将最后生成的对象添加到 Person 对象的phones 数组中。 我想要做的是能够将所有生成的对象添加到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)

在此处输入图片说明

第二次循环时,第一个对象被替换
在此处输入图片说明

你会如何避免这个问题?

在 ES5 中

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

在 ES6 中:

person.phones = [...person.phones,...phoneObjs];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM