Ich habe eine Funktion erstellt, die, wenn sie mit zwei Argumenten aufgerufen wird, die Argumente gegen einige zusätzliche Daten prüft und, wenn die Rückgabe false
ist, das Feld zurückgibt.Rückgabevariable innerhalb von array.find()
Ich möchte eines der Elemente zurückgeben, wenn false
und Ignorieren/zurückgeben undefiniert, wenn true
.
getFirstInvalidField() {
const allFields = this.getPassengerDetailsFieldsRefs();
allFields[0].find(function (field){
if (!this.isValidField(field, 0)) {
return field;
}
}, this);
}
Also, wenn isValidField
kehrt false
, sollte es field
an den Ort zurück, wo getFirstInvalidField()
genannt wurde. Dies scheint nicht zu geschehen.
const firstInvalidField = this.getFirstInvalidField();
Dies sollte field
zurückkehren, sondern kehrt undefined
immer. Es scheint, die return field
Aussage ist nicht auf firstInvalidField
[Die docs sagt] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) „_Die find() -Methode einen Wert von zurückgibt das erste Element im Array, das die angegebene Testfunktion erfüllt, andernfalls wird undefined zurückgegeben. _ " – Teemu
@Teemu ja, und es sollte erfüllt und zurückgegeben werden? – user1486133
Setzen Sie eine 'return' vor' allFields [0] .find() '. Sie geben das Ergebnis in die Funktion zurück, geben aber nicht das Ergebnis * aus * der Funktion zurück. – Archer