Day 13 of the 30 Day Learning Challenge and I finished off Chapter 3 of Eloquent JavaScript. There's some really good advice in this book about how to build functions (essentially make the function have as few side effects as possible). I did two of the examples. Here's the code for each:
This one recursively determines if a number is even using the following rubric:
- Zero is even.
- One is odd.
- For any other number N, its evenness is the same as N - 2.
Here's the code:
function isEven(x) {
if (x == 0) {
return true;
};
if (x == 1) {
return false;
};
return isEven(x - 2);
};
The next problem finds an arbitrary letter in a string:
function countChar(compareText, compareCharacter) {
var countCharacter = 0;
for (i = 0; i <= compareText.length; i++) {
if (compareText.charAt(i) == compareCharacter) {
countCharacter++;
};
};
return countCharacter;
};
Nothing too special here but I'm finding that I've been spoiled by Python (typing in str.length()
instead of str.length
, even though Python uses length(str)
instead). But nothing too serious or too tricky here. I've been a little gun-shy about doing recursion and was surprised the isEven
worked pretty much out of the box (once I figured out my dumb syntax errors).
Overall a pretty productive session. Onward to Chapter 4 "Data Structures: Objects and Arrays".