如何将动态创建的对象插入到另一个对象中

时间:2016-08-02 04:20:16

标签: javascript jquery

早上好! 我使用表单字段值有两个动态创建的对象。它们是对象文字,如下所示:

var courses = {};
course['name'] = $('#course').val();
var students = {};
students['first'] = $('#first_name').val();
students['last'] = $('#last_name').val();
students['age'] = $('age').val();

我想将它们插入到单个对象文字var person= {}中 我需要将两个对象合二为一,因为我需要对其进行字符串化并通过ajax发送到我的进程页面。你能帮我吗?

3 个答案:

答案 0 :(得分:3)

您可以在创建对象时填充对象:

var persons = {
    courses: {
        name: $('#course').val(),
    },
    students: {
        name: $('#first_name').val(),
        last: $('#last_name').val(),
        age: $('#age').val(),
    },
};

如果您想使用已有的对象,可以这样做:

var persons = {
    courses: courses,
    students: students,
};

答案 1 :(得分:2)

您可以使用以下2个对象创建对象:

var data = {courses:courses,students:students};

或者你可以将一个附加到另一个

students['courses'] = courses;

答案 2 :(得分:1)

问题是什么? 只需将这些对象放入对象中,然后就可以将其序列化,例如到JSON并通过ajax发送:

var person = {}
person.course = {};
person.student = {};

person.course['name'] = "Course 1";
person.student['first'] = "Vasya";
person.student['last'] = "Pupkin";
person.student['age'] = "26";

如果您想要多个学生,则应使用arrays。在这里,我们创建一个包含3个对象的数组,每个对象代表一个 student

var person = {}
person.course = {};
person.students = [{},{},{}];

person.course['name'] = "Course 1";
person.students[0]['first'] = "Vasya";
person.students[0]['last'] = "Pupkin";
person.students[0]['age'] = "26";

person.students[1]['first'] = "Petya";
person.students[1]['last'] = "Vasechkin";
person.students[1]['age'] = "30";

person.students[2]['first'] = "Vasiliy";
person.students[2]['last'] = "Alibabaevich";
person.students[2]['age'] = "40";

你可以用课程做同样的事情。

但在这种情况下,包含所有这些数据的对象的名称 person 有点令人困惑,因为它包含多个学生。您应该为变量提供有意义的名称。