将表单数据作为对象添加到另一个对象中

问题描述:

我无法将表单数据导入到我想要的结构中的对象中。目前它返回的格式如下:将表单数据作为对象添加到另一个对象中

mainObject = { name1:{}, name2:{}, name3{} } 

什么,我想要实现

我的JS:

var users = {}; 

function formSubmit(){ 
    var name = $("#name").val(); 
    var age = $("#age").val(); 
    var zip = $("#zip").val(); 

    users[name] = {}; 
    users[name].age = age; 
    users[name].zip = zip; 
    console.log(users); 
}; 

我有一个可用的箱是否有帮助,谢谢!

https://jsbin.com/bofohabahu/1/edit?html,js,console,output

+3

'{{name1:{}},{name2:{}},{name3 {}}}'是无效的语法。 – str

+0

这个答案实际上指向了我正确的方向,谢谢! –

+0

@JuanArciniega你的评论让我觉得你解决了这个问题。如果是这样,你应该考虑编辑这个问题来反映这个问题,或者将其中一个答案标记为已接受(如果其中任何一个是正确的),以便这个问题的未来观众不会浪费时间。 – jonahe

对象可以被看作是键的集合和关键值。一个对象不能包含一个值(比如一个对象)而没有该值的键(想想看,你将如何访问它?)。

所以这就是为什么{ {name1:{}}, {name2:{}}, {name3{}} }是不可能的。

如果你不关心每个对象的键,那么我可以建议使用一个数组吗? [ {name1:{}}, {name2:{}}, {name3: {}} ]

+1

谢谢@jonahe。我结束了使用你的建议,而不是使用数组。这对我正在使用的项目非常有效。 –

+0

很高兴解决了! :) – jonahe

你这是怎么让name为包含agezip

var users = {}; 

    function formSubmit(){ 
    var name = $("#name").val(); 
    var age = $("#age").val(); 
    var zip = $("#zip").val(); 

    users[name] = { 

    age: age, 
    zip: zip 

    }; 
console.log(JSON.stringify(users)); 
}; 

试试这个 https://jsbin.com/vanusapixu/1/edit?html,js,console,output