試圖創建「一些」功能。即如果任何德數組中的元素滿足條件返回trueJavascript - 創建「一些」功能
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:以上就是書中的解決方案,我不知道爲什麼「返回false」將覆蓋「返回true」在每一個案例。上面的解決方案似乎表明,只有當「返回true」從未運行時,「return false」纔會運行 - 爲什麼?
我的解決方案看起來像這樣。
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