错误:无法读取未定义的属性'forEach'



我想做的事情:

我想过滤这些数组,看看是否有任何日期同时处于活动状态。

这是我的代码:

loadAllAndCheckDates (recommendedSection: RecommendedSection): boolean {
this.query()
.subscribe((res: ResponseWrapper) => { this.fromDbRecommendedSections = res.json; }, (res: ResponseWrapper) => this.onError(res.json));
return this.checkDates(recommendedSection);
}
checkDates (currentRecSec: RecommendedSection): boolean {
this.fromDbRecommendedSections.forEach((recSecDB:RecommendedSection) =>{
var dbActiveFrom = new Date(recSecDB.activeFrom);
var dbActiveTo = new Date(recSecDB.activeTo);
var currActiveFrom = new Date(currentRecSec.activeFrom);
var currActiveTo = new Date(currentRecSec.activeTo);
if(dbActiveFrom.getTime() === currActiveFrom.getTime()){
this.isDouble = true;
}if (dbActiveTo.getTime() === currActiveTo.getTime()){
this.isDouble = true;
}if(dbActiveFrom > currActiveFrom && dbActiveFrom < currActiveTo){
this.isDouble = true;
}if(dbActiveTo > currActiveFrom && dbActiveTo < currActiveTo){
this.isDouble = true;
}
}, (res: ResponseWrapper) => this.onError(res.json));
return this.isDouble;
}

问题:

遗憾的是,我在控制台中收到以下错误:无法读取未定义的属性"forEach">

编辑:

以下是如何设置fromDbRecommendedSection:

export class RecommendedSection implements BaseEntity {
constructor(
public id?: number,
public activeFrom?: any,
public activeTo?: any,
public identification?: string,
public recommendedSectionNames?: RecommendedSectionName,
public recommendedSectionItems?: RecommendedSectionItem[],
) {
this.recommendedSectionItems = [];
}
}

在您的示例中,您应该同步处理数据——在填充this.fromDbRecommendedSections之前,获得响应的延迟可能太高。所以当您返回this.checkDates时,this.fromDbRecommendedSections就是undefined

尝试

loadAllAndCheckDates (recommendedSection: RecommendedSection): boolean {
this.query()
.subscribe((res: ResponseWrapper) => {
this.fromDbRecommendedSections = res.json; // needs to be an array
this.checkDates(recommendedSection)
}, (error:any) => console.log(error);
}

最新更新