-1
在第二章使用Javascript的第二個練習中,我不明白如何通過n
像50
等於零並返回true?Eloquent 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));
// → true
console.log(isEven(75));
// → false
console.log(isEven(-1));
// → false
如果我在控制檯輸入:
>var x = 50;
>50 == 0;
>false
返回FALSE。爲什麼是這樣?我不是英語母語的人,所以也許我沒有正確閱讀JS代碼中的東西?
這很明顯是錯誤的,所以請注意下一個。 '50 == 1'也是錯誤的,所以請跳過。 '50 <0'也是錯誤的,所以最後'return isEven(n-2)',它再次運行該函數,但是與48一樣。重複46,44 ... 4,2,0。 '0 == 0'是真的。 –
遍歷調試器中的代碼。 – 2017-03-17 19:33:11
當然,你可以只是'返回n%2 == 0'而不是... –