2016-03-04 48 views
0

對於我的生活,我不明白爲什麼這不起作用。它看起來與我見過的許多解決方案不相同。顯然有一些我錯過了。如果有人願意解釋id欣賞它。檢查數字是否在JavaScript中甚至是

var isEven = function(number) { 
if (isEven % 2 === 0) { 
    return true; 
} else { 
    return false; 
} 

};

+4

在你的函數裏面你應該使用數字,而不是isEven。 – visola

+0

謝謝,這使得很多意義..固定 –

+0

我建議你學習如何調試你的程序。例如,在函數的第一行中,可以輸出'isEven%2'來查看它的值。你可以'提醒'它或'console.log'。或者你可以在那裏放一個斷點並在調試器中檢查'isEven%2'的值。無論哪種情況,您都會看到值爲'NaN'。爲了弄清楚爲什麼,你可以檢查'isEven'本身的價值,看看它是一個函數。這會指出你正在考慮函數模數的問題,而不是參數'數字'。 – 2016-03-04 03:28:55

回答

-1

您的isEven函數具有一個函數值。

因此,當您在(isEven % 2 === 0) 中檢查時,它最終總是被錯誤,因爲isEven是NaN。 這將始終返回false。

相反,使用您的參數number是正確的解決方案。

var isEven = function(number) { 
    if (number % 2 === 0) { 
    return true; 
    } else { 
    return false; 
    } 
} 
+0

哇,好吧,也許我需要休息一下,現在看起來如此明顯......謝謝你,花了我好幾個小時。 –

4

您可以修復它,它縮短到這一點:

function isEven(number) { 
    return number % 2 === 0; 
} 

無需爲if/else。您可以直接返回比較結果。

+0

最佳答案,夥計。 – developer033

+0

這更清潔^絕對不需要if/else語句。 –