Angular 筛选器方法中的未定义属性
我对以下方法有异议。出现以下错误Angular 筛选器方法中的未定义属性,angular,Angular,我对以下方法有异议。出现以下错误无法读取未定义的属性“selectedMAP” const selectedPlan = {"name": "basic", "amount": 1000} let dependantsCost = 0; for (let i = 0; i < this.planCosts[0].selectedMAP.length; i++) { for (let j = 0; j < this.planCosts[0].selectedMAP[i].
无法读取未定义的属性“selectedMAP”
const selectedPlan = {"name": "basic", "amount": 1000}
let dependantsCost = 0;
for (let i = 0; i < this.planCosts[0].selectedMAP.length; i++) {
for (let j = 0; j < this.planCosts[0].selectedMAP[i].options.length; j++) {
if (selection.medicalAid.numberOfAdultDependants > 0) {
const costForAdultDependant = this.planCosts.filter(x => x.selectedMAP[i].options[j].optionName.toLowerCase() == selectedPlan.name.toLowerCase())[0].selectedMAP[i].options[j].adultDependantAmount;
const numberOfAdultDependants = selection.medicalAid.numberOfAdultDependants;
dependantsCost += numberOfAdultDependants * costForAdultDependant;
}
}
}
此.planCosts[0]与此相等
{
"corporateId": "a682fafc-372a-4bbf-9b42-fe8b35cc437f",
"selectedMAP": [
{
"mapId": 32,
"mapName": "one",
"active": true,
"options": [
{
"optionId": 49,
"optionName": "basic",
"memberAmount": 1000,
"adultDependantAmount": 500,
"childDependantAmount": 500,
"active": true
},
{
"optionId": 50,
"optionName": "advanced",
"memberAmount": 2000,
"adultDependantAmount": 1000,
"childDependantAmount": 2000,
"active": true
}
]
},
{
"mapId": 33,
"mapName": "two",
"active": true,
"options": [
{
"optionId": 51,
"optionName": "lite",
"memberAmount": 1000,
"adultDependantAmount": 500,
"childDependantAmount": 500,
"active": true
},
{
"optionId": 52,
"optionName": "heavy",
"memberAmount": 2000,
"adultDependantAmount": 500,
"childDependantAmount": 500,
"active": true
}
]
}
]
}
你知道为什么这会给我一个错误吗?这部分给出了错误
this.planCosts.filter(…)[0]。已选择地图[i]
,
当过滤输出的长度变为零时。您可以这样使用它来避免错误
const lenOfFiltered = this.planCosts.filter(...).length;
if (lenOfFiltered ) {
this.planCosts.filter(...)[0].selectedMAP[i].options[j].adultDependantAmount;
}
谢谢大家! 这部分给出了错误
this.planCosts.filter(…)[0]。已选择地图[i]
,
当过滤输出的长度变为零时。您可以这样使用它来避免错误
const lenOfFiltered = this.planCosts.filter(...).length;
if (lenOfFiltered ) {
this.planCosts.filter(...)[0].selectedMAP[i].options[j].adultDependantAmount;
}
谢谢大家! 您是否正确地将this json分配给了planCosts?当您调用此方法时,this.planCosts[0]未定义,您是如何得到它的?@FedMice我已经更新了问题,以显示this.planCosts[0]给出了什么。我从一个端点得到这个call@Indrajeet我已经更新了问题,以显示此.planCosts[0]给出了什么问题在于筛选器行,应用筛选器后应始终检查长度您是否已将此json正确分配给planCosts?当您调用此方法时,此.planCosts[0]未定义,您是如何获得的?@FedMice我已更新了问题,以显示此.planCosts[0]提供了什么。我从一个端点得到这个call@Indrajeet我已经更新了问题,以显示这是什么。planCosts[0]给定问题在于过滤线,应用过滤后,您应该始终检查长度