Пытается создать «некоторую» функцию. т.е. возвращает истину, если какой-либо из элементов в массиве Teh удовлетворяет условиюJavascript - создание «некоторой» функции
function some(array, predicate) {
for (var i = 0; i < array.length; i++) {
if (predicate(array[i]))
return true;
}
return false;
}
console.log(some([NaN, 3, 4], isNaN));
// → true
console.log(some([2, 3, 4], isNaN));
// → false
Вопрос 1: Выше решение в книге, и я не знаю, почему «вернуть ложь» затирает «возвращает истину» в каждый случай. Вышеупомянутое решение, похоже, предполагает, что «return false» будет выполняться только в том случае, если «return true» никогда не запускался - ПОЧЕМУ?
Мое решение было таким.
var some = function(array, condition) {
var answer = false;
for(var i=0; i<array.length; i++) {
if(condition(array[i])) {answer = true};
}
return answer
};
Вопрос 2: Является ли решение книги лучше, потому что оно требует меньше памяти (т.е. переменной «ответ»)?
Спасибо!
Потому что, если вы вернули true, вы оставите функцию и 'return false' никогда не будет выполняться. –
Для чего это стоит, если вы не хотите изобретать велосипед: http://underscorejs.org/#some – asawyer