Я создал функцию, которая при вызове с двумя аргументами проверяет аргументы против некоторых дополнительных данных, а если возвращается false
, возвращает это поле.Возвращаемая переменная изнутри array.find()
Я хочу вернуть один из элементов, если false
и игнорировать/возвращать undefined, если true
.
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
[Документы говорят] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) «Метод _The находки() возвращает значение первый элемент в массиве, который удовлетворяет предоставленной функции тестирования. В противном случае возвращается undefined._ « – Teemu
@Teemu да, и он должен был быть удовлетворен и возвращен? – user1486133
Поместите 'return' перед' allFields [0] .find() '. Вы возвращаете результат в функцию, но не возвращаете результат * из * функции. – Archer