我们可以在javascript中动态地为现有的参数数组创建对象吗?

时间:2015-11-02 20:15:08

标签: javascript arrays object arrayobject

例如,如果我有这样的代码

var contacts = [{firstName: "Bob",lastName: "Jones",phoneNumber: "6507777777",email: "bob.jones@example.com"}, {firstName: "Mary", lastName: "Johnson", phoneNumber: "6508888888", email: "mary.johnson@example.com"}];

我可以这样做来为我的数组对象添加新对象吗?

contacts[0].zipcode = 12345

contacts[1].zipcode = 12346

编译器有时会成功运行,但有时会抛出错误"对象错误"

这样做是否合法?或者有没有其他方法将对象添加到数组?

2 个答案:

答案 0 :(得分:0)

有效。但是如果没有更多的代码,很难分辨出有时会发生错误的原因。您可以在设置邮政编码之前进行检查,看看您的错误是否消失:

if(typeof contacts === 'object' && contacts[0] && typeof contacts[0] === 'object'){
    contacts[0].zipcode = 12345;
}

答案 1 :(得分:0)

您无法使用该语法创建新对象,只能在现有对象中添加或修改属性。所以代码必须是这样的:

if (!contacts[0]) {
    contacts[0] = {}; // initialize the array element
}
contacts[0].zipcode = 12345;