2016-06-21 18 views
0

所以我一直在閱讀這本名爲Eloquente JavaScript的書,並且在本書中寫出的東西看起來相當複雜。有一個挑戰是我不得不懷疑一個函數顯示真或假,取決於值是否平等。我的版本比那本書的版本短得多。什麼應該是這樣做的最好方法?爲什麼他這樣做呢?什麼是獲得偶數的更好方法?

Eloquente JavaScript代碼:

function isEven(n) { 
    if (n == 0) 
    return true; 
    else if (n == 1) 
    return false; 
    else if (n < 0) 
    return isEven(-n); 
    else 
    return isEven(n - 2); 
} 

console.log(isEven(50)); 
console.log(isEven(75)); 
console.log(isEven(-1)); 

我自己的代碼:

function even(num) { 
     if (num % 2 == 0){ 
     return true; 
     } 
     else{ 
     return false ; 
     } 
    }; 

    console.log(even(17)); 
    console.log(even(10)); 
    console.log(even(-33)); 
    console.log(even(-40)); 
+0

這是大概是遞歸的章,否則沒有人會實現它是這樣。 – tkausl

+0

是的,它只是爲了展示?我的版本是正確的? –

+0

教科書經常以困難的方式做事,因爲他們想要教一個特定的語言概念。確實,你的函數是「更好」的(儘管'return num%2 === 0'會更好),但是如果這本書想要你學習遞歸或其他ifs,那麼按照你的方式去做就不會教你那些東西。 – JJJ

回答

-1
function even(num) { 
    return num % 2 === 0; 
} 
+2

這不是我的問題,我知道我可以這樣做,我只是想知道爲什麼他們不會。 –

相關問題