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

标签 javascript jquery arrays 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):

enter image description here

第二次循环时,第一个对象被替换
enter image description here

如何避免这个问题?

最佳答案

在 ES5 中

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

在 ES6 中:

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

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

相关文章:

javascript - 将 One Signal API 与 Firebase Cloud Functions 集成

jquery - 如何检测一个元素是否 float 在另一个元素下方?

c - 根据我的编译器的说法,我错误地使用了指针来设置二维数组的值。但是,我不确定我到底做错了什么

c - 字符数组必须大于必要的数组

javascript - 如何操作数组对象并创建新数组

javascript - 如何 promise 来自 google.maps.places API getPlacePredictions 的回调?

javascript - 如何使用jquery修改没有div Id的内部HTML

javascript - 提交不是js中的函数

jquery - Bootstrap 中的容器不工作

javascript - jQuery 或 Javascript 可以模拟被点击的链接吗?