[英]Why does my boolean return 'undefined'?
我正在通過Eloquent Javascript進行工作,這里有一個練習來制作every
函數,該函數接受一個數組和一個函數,並根據通過該函數后數組中所有項目返回的內容返回true或false。
我很困惑,因為當我在函數內執行console.log()時,會兩次獲得布爾值...但是當我進行console.log(every(arr,func))時,會得到undefined
。
var every = function(arr, req){
arr.map(function(item){
return req(item);
}).reduce(
function(total, num){
// this returns: true
// true
console.log(total && num);
return total && num;
});
}
// This returns undefined
console.log(every([NaN, NaN, NaN], isNaN));
那么,為什么在函數內部兩次都true
,為什么我未定義?
我正在使用節點作為控制台。
您需要向最外層函數添加return語句,如下所示:
var every = function(arr, req){
return arr.map(function(item){
return req(item);
}).reduce(
function(total, num){
return total && num;
});
}
// This returns true
console.log(every([NaN, NaN, NaN], isNaN));
編輯:固定的返回值,謝謝@凱文B
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.