如何动态地向JavaScript数组追加元素?

6
我想创建以下内容:

可能是重复问题:
如何动态地创建JavaScript数组(JSON格式)?

我正试图创造以下东西:

var employees = {"accounting": [   // accounting is an array in employees.
                    { "firstName" : "John",  // First element
                      "lastName"  : "Doe",
                      "age"       : 23 },

                    { "firstName" : "Mary",  // Second Element
                      "lastName"  : "Smith",
                      "age"       : 32 }
                  ] // End "accounting" array.                                  

    } // End Employees

我从这里开始:

 var employees=new Array();

如何动态地继续向数组中添加元素(可能使用变量更改firstName)?

即使描述相同......与上面的重复问题! - Sudhir Bastakoti
你在这个问题上获得了5个赞,而且在这个完全相同的问题上获得了9个赞,这是非常可疑的。 - user229044
4个回答

7
var employees = {accounting: []};

employees.accounting.push({
    "firstName" : "New",
    "lastName"  : "Employee",
    "age"       : 18
});

完美,谢谢!我会在几分钟内接受。 - Michael Anderson
顺便提一下,很多 JavaScript 开发者使用数组字面量的原因不仅仅是它们简洁,而且 new Array() 的可变参数签名很容易让人感到困惑。 - Lucas Green
请注意,如果您传递一个数字作为参数,它将被解释为数组的默认长度;而如果您传递两个数字,则会将它们视为数组的前两个元素。此外,更多相关信息请参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array - Lucas Green
1
"new Array() 的可变参数签名很令人困惑" - 而在这种情况下,employees 甚至不应该是一个数组,它是一个对象... - nnnnnn

2
employees.accounting.push({ "firstName" : "New",  // First element
                      "lastName"  : "Person",
                      "age"       : 55 });

0
var urNewFirstName='new john';
employees.accounting[0].firstName = urNewFistName;

0
function Employee(firstName, lastName, age) {
  this.firstName = firstName;
  this.lastName = lastName;
  this.age = age;
}

var employees = {};
employees.accounting = [];
employees.accounting.push(new Employee('John', 'Doe', 23));
employees.accounting.push(new Employee('Mary', 'Smith', 32));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接