例如,如果我有这样的代码
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
编译器有时会成功运行,但有时会抛出错误"对象错误"
这样做是否合法?或者有没有其他方法将对象添加到数组?
答案 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;