我想将 'universitiesListFromDB' 类型为 'Uni.model.ts' 的 'obj' 变量推送到 'universitiesListFromDB' 这只是一个相同类型的数组。
for (let i = 0; i < responseData.length; i++) {
var matchedFlag: Boolean = false;
if (this.universitiesListFromDB.length <= 0) {
for (
let j = 0;
j < this.universitiesListFromDB.length && !matchedFlag;
j++
) {
if (
this.universitiesListFromDB[j].uniName ==
responseData[i].UniversityNameOfUser
) {
matchedFlag = true;
}
}
if (matchedFlag == false) {
var obj: Uni;
obj.uniName = responseData[i].UniversityNameOfUser; <<----ERROR HERE
this.universitiesListFromDB.push(obj);
}
//check MatchedFlag, if false then assign
} else {
this.universitiesListFromDB[0].uniName =
responseData[i].UniversityNameOfUser;
}
}
错误:
core.js:6006 ERROR TypeError: Cannot set property 'uniName' of undefined
at HomepageService.initiallizeRemainings (homepage.service.ts:86)
at SafeSubscriber._next (homepage.service.ts:55)
at SafeSubscriber.__tryOrUnsub (Subscriber.js:183)
at SafeSubscriber.next (Subscriber.js:122)
at Subscriber._next (Subscriber.js:72)
at Subscriber.next (Subscriber.js:49)
at MapSubscriber._next (map.js:35)
at MapSubscriber.next (Subscriber.js:49)
at FilterSubscriber._next (filter.js:33)
at FilterSubscriber.next (Subscriber.js:49)
以下是我想要将 'obj' 推入但无法实现的数组。有人可以指导吗?
universitiesListFromDB: Uni[] = []
该数组的类型与变量 'obj' 相同的 Uni.model.ts 类型
export interface Uni {
uniName: String;
}
答案 0 :(得分:0)
您只声明了 obj
,但没有对其进行初始化。
改变
var obj: Uni;
obj.uniName = responseData[i].UniversityNameOfUser;
到
let obj: Uni = { uniName: responseData[i].UniversityNameOfUser };
注意:
避免使用 var
。改用 const
(不可变)或 let
(可变)。