[英]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.