Я выполняю упражнение прямо сейчас, и я не могу понять, почему это возвращается неопределенно.Почему эта функция возвращает неопределенные?
function every(array, compare) {
var newArray = array.filter(
function(property) {
return compare(property);
}
);
if (newArray === undefined || newArray.length == 0) {
return false;
}
}
console.log(every([NaN, NaN, NaN], isNaN));
// → true
console.log(every([NaN, NaN, 4], isNaN));
// → false
, как вы можете видеть, я должен получить истинное и ложное, но вместо этого я получаю неопределенными и неопределенными. Почему это так? Я думаю, это потому, что я не понимаю isNaN правильно, но я не уверен на 100%.
Что происходит, если 'if' не работает? Функция возвращает 'undefined' по умолчанию ... – elclanrs
' Я должен получить true и false' - когда ваша функция возвращает 'true'? – Adam
Обратите внимание, что 'return' внутри' filter' не возвращается из функции 'every', он просто определяет результат фильтра (для одного элемента массива). – Thilo