0

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

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

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

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

4

2 回答 2

0

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

if (!contacts[0]) {
    contacts[0] = {}; // initialize the array element
}
contacts[0].zipcode = 12345;
于 2015-11-02T20:53:55.000 回答
0

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

if(typeof contacts === 'object' && contacts[0] && typeof contacts[0] === 'object'){
    contacts[0].zipcode = 12345;
}
于 2015-11-02T20:27:36.763 回答