簡體   English   中英

為什么我的布爾值返回“未定義”?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM