Показать сообщение отдельно
  #1 (permalink)  
Старый 02.09.2020, 10:29
Новичок на форуме
Отправить личное сообщение для tolstj Посмотреть профиль Найти все сообщения от tolstj
 
Регистрация: 02.09.2020
Сообщений: 4

Самописная функция every не работает, почему?
Даны две функции: аналоги метода 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

Последний раз редактировалось tolstj, 02.09.2020 в 10:46. Причина: Уточнение заголовка, уточнение оформления
Ответить с цитированием