[英]Typescript Array is undefined
我有一个函数,应该将多个JSON对象保存到“联系人”类型的数组中
getContacts(){
let self = this;
$.ajax({
type: "GET",
url: "/chat/contacts/",
dataType:"json",
success: function(response){
let obj = response;
let i = 1;
let contacts: Contact[] = [];
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
let val = obj[key];
contacts[i].id = val["id"]; //<-- contacts[i] is undefinded
contacts[i].partner = val["partnerId"];
contacts[i].name = val["name"];
contacts[i].type = val["type"];
console.log(contacts[i]);
}
}
},
error: function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
}
});
}
在标记点上说
联系人[i]未定义
我必须如何初始化数组才能使其正常工作?
这是联系人类别:
class Contact extends BaseModel{
static CCO_ID = "id";
static CCO_PARTNER = "partner";
static CCO_NAME = "name";
static CCO_TYPE = "type";
partner: Number;
name: String;
type: Number;
}
您需要首先定义contacts[i]
是一个对象,然后使用它的属性。
还有一件事,您从索引1
开始,而Javascript数组的索引从0
开始。 请注意是否不是故意的。
let val = obj[key];
contacts[i] = new Contact(); // <-- Look here
contacts[i].id = val["id"];
contacts[i].partner = val["partnerId"];
contacts[i].name = val["name"];
contacts[i].type = val["type"];
console.log(contacts[i]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.