这是我的代码:
useraccountprofileJSON.providerprofile.openinginfo.forEach(function(instance_1){
instance_1.openingdetail.openingapplication.forEach(function(instance_2){
console.log(instance_2);
if(instance_2.oaid == oaid){
isowner = true;
}
});
});
当我执行此操作时,我收到以下错误:
[TypeError:无法读取未定义的属性'openingapplication']
错误是因为forEach迭代中的最后一项(即last lasttail)未定义。
如何解决这个问题?
答案 0 :(得分:0)
您可以通过替换:
解决此问题instance_1.openingdetail.openingapplication.forEach
使用:
instance_1.openingdetail && instance_1.openingdetail.openingapplication.forEach
如果您的代码的目的只是设置isowner
值,那么您可以使用some
,它会在找到一个oid
匹配后立即退出:
isowner = useraccountprofileJSON.providerprofile.openinginfo.some(function(instance_1){
return instance_1.openingdetail &&
instance_1.openingdetail.openingapplication.some(function(instance_2){
return instance_2.oaid == oaid;
});
});