Created
August 24, 2016 04:36
-
-
Save hartbeatnt/0a5030fe522aa87f255e24abe8136405 to your computer and use it in GitHub Desktop.
Nate Hart's Checkpoint 1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*Write a function average that takes two numbers as input (parameters), | |
and returns the average of those numbers.*/ | |
function average(num1, num2) { | |
return (num1 + num2) / 2; | |
} | |
/*Write a function greeter that takes a name as an argument and greets | |
that name by returning something along the lines of "Hello, <name>!"*/ | |
function greeter(name) { | |
return "Well hello there, " + name; | |
} | |
/*Write the following functions that each accept a single number as an argument: | |
even: returns true if its argument is even, and false otherwise. | |
odd: the opposite of the above. | |
positive: returns true if its argument is positive, and false otherwise. | |
negative: the opposite of the above. | |
*/ | |
function even(n) { | |
return n % 2 === 0; | |
} | |
function odd(n) { | |
return n % 2 !== 0; | |
} | |
function positive(n) { | |
return n > 0; | |
} | |
function negative(n) { | |
return n < 0; | |
} | |
/*Write a function sayHello that takes a language parameter, and returns "hello" | |
in that language. Make the function work with at least three languages.*/ | |
function sayHello(lang) { | |
lang = lang.toLowerCase(); | |
if (lang === "spanish") | |
return "hola"; | |
if (lang === "french") | |
return "bonjour"; | |
if (lang === "hebrew") | |
return "shalom"; | |
return "I don't speak " + lang; | |
} | |
/*Write a function validCredentials that accepts two parameters: username and | |
password, and returns true if both are long enough, and false otherwise. You can | |
decide what constitutes "long enough".*/ | |
function validCredentials(username, password) { | |
minUserNameLength = 6; | |
minPasswordLength = 8; | |
return username.length >= minUserNameLength && password.length >= minPasswordLength; | |
} | |
/*Repeating a String n Times: Let's write a function called repeatString that takes | |
two parameters: a string str, which is the string to be repeated, and count -- a | |
number representing how many times the string str should be repeated, e.g. | |
repeatString('dog', 0); // => '' | |
repeatString('dog', 1); // => 'dog' | |
repeatString('dog', 2); // => 'dog' + 'dog' => 'dogdog' | |
repeatString('dog', 3); // => 'dog' + 'dog' + 'dog' => 'dogdogdog' | |
*/ | |
function repeatString(str, count) { | |
var newStr = ""; | |
for (var i = 0; i < count; i++) { | |
newStr = newStr + str; | |
} | |
return newStr; | |
} | |
/*Write a function called average that takes an array of numbers as a parameter | |
and returns the average of those numbers.*/ | |
function average(arr) { | |
var sum = 0; | |
for (var i = 0; i < arr.length; i++) { | |
sum += arr[i]; | |
} | |
return sum / arr.length; | |
} | |
/*Write a function countWords that, when given a string as an argument, returns | |
an object where keys are the words in the string, and values are the number of | |
occurrences of that word within the string:*/ | |
function countWords(str) { | |
str = str.toLowerCase() | |
var arr = str.split(" "); | |
var wordObj = {}; | |
for (var i = 0; i < arr.length; i++) { | |
if (wordObj[arr[i]] === undefined) | |
wordObj[arr[i]] = 0; | |
wordObj[arr[i]]++ | |
} | |
return wordObj; | |
} | |
countWords("hello hello"); // => {"hello": 2} | |
countWords("Hello hello"); // => {"Hello": 1, "hello": 1} | |
countWords("The quick brown"); // => {"The": 1, "quick": 1, "brown": 1} | |
/*HINT: You will want to make use of the string method split. Try \"Hello hello".split(" ") | |
at a console to see how it works. | |
Modify countWords to be case insensitive by using the following string method | |
(experiment at a console with it to learn its behavior):*/ | |
"HElLo".toLowerCase(); // => hello | |
//BONUS | |
/*Read about the join method on MDN and use it to implement a function that | |
accepts a string as an argument and returns that string reversed.*/ | |
function reverse(str) { | |
var arr = str.split(""); | |
var newArr = []; | |
for (var i = 0; i < arr.length; i++) { | |
newArr[i] = arr[arr.length - i - 1]; | |
} | |
return newArr.join(""); | |
} | |
/*The function Object.keys returns an array of an object's keys. Experiment with it at | |
the console like this:*/ | |
Object.keys({a: 1, b: 2}); | |
/*Using this property, write versions of the above functions using repetition through | |
function invocation (i.e. recursion)*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment