Даны две функции: аналоги метода every у массивов. Первую написал я для самообучения в надежде что я понимаю что делаю, а второй вариант из учебника eloquent javascript.
Почему мой вариант не работает, всегда выдает true?
// Функция 1 - моя (работает не правильно)
function every(array, predicate) {
array.forEach(function(element) {
if (!predicate(element)) return false;
});
return true;
}
// Функция 2 - из книги (работает правильно)
function every(array, predicate) {
for (let element of array) {
if (!predicate(element)) return false;
}
return true;
}
// Применение
console.log(every([NaN, NaN, NaN], isNaN));
// → true
console.log(every([NaN, NaN, 4], isNaN));
// → false