我创建了一个函数,当使用两个参数调用时,根据某些补充数据检查参数,如果返回为false
,则返回该字段。
如果false
我希望返回其中一个元素,如果true
则忽略/返回undefined。
getFirstInvalidField() {
const allFields = this.getPassengerDetailsFieldsRefs();
allFields[0].find(function (field){
if (!this.isValidField(field, 0)) {
return field;
}
}, this);
}
因此,当isValidField
返回false
时,它应该field
返回到getFirstInvalidField()
被调用的地方。这似乎没有发生。
const firstInvalidField = this.getFirstInvalidField();
这应返回field
,而是始终返回undefined
。似乎return field
语句没有被传回并分配给firstInvalidField
答案 0 :(得分:3)
您需要在函数getFirstInvalidField()
中返回allFields[0].find()
返回的值:
getFirstInvalidField() {
const allFields = this.getPassengerDetailsFieldsRefs();
return allFields[0].find(function (field){
if (!this.isValidField(field, 0)) {
return field;
}
}, this);
}
答案 1 :(得分:-1)
您需要从true
回调中返回false
或find()
回复。同时将结果返回给函数调用者。
getFirstInvalidField() {
const allFields = this.getPassengerDetailsFieldsRefs();
return allFields[0].find(function (field){
return !this.isValidField(field, 0);
}, this);
}