Я хочу поместить эту переменную «obj» типа «Uni.model.ts» внутрь «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[] = []
Массив имеет тип Uni.model.ts, такой же, как и переменная obj.
export interface Uni {
uniName: String;
}
Вы только объявляете obj
, но не инициализируете его.
Изменять
var obj: Uni;
obj.uniName = responseData[i].UniversityNameOfUser;
к
let obj: Uni = { uniName: responseData[i].UniversityNameOfUser };
Примечание:
Избегайте использования var
. Вместо этого используйте const
(неизменяемый) или let
(изменяемый).
Пожалуйста, не задавайте вопросы в виде ссылок.