-
-
Save rexfordkelly-at-makersquare/6cbdac7d0b86d2bdbbfdea5b950f4589 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
# W2D2 Checkpoint | |
Submit a link to your gist [here](https://goo.gl/forms/HywFjkNIU9mLM7c03) | |
1. Write a function `average` that takes two numbers as input (parameters), and | |
returns the average of those numbers. | |
function average(num1,num2){ // Good Job! | |
return (num1 + num2) / 2; | |
} | |
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){ // Good Job! | |
return "Hello, " + name + "! How are you?"; | |
} | |
3. 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(num1){ // Good Job! | |
return num1 % 2 === 0; | |
} | |
function odd (num2){ // Good Job! | |
return num2 % 2 !== 0; | |
} | |
function positive(num3){ // Good Job! | |
return num3 > 0; | |
} | |
function negative(num4){ // Good Job! | |
return num4 < 0; | |
} | |
4. 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(language){ // Good Job! | |
if(language === "English"){ | |
return "Hello!"; | |
} | |
if(language === "Portuguese"){ | |
return "Ola!"; | |
} | |
if(language === "Spanish"){ | |
return "Hola!"; | |
} | |
return "Unknown language"; | |
} | |
5. 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){ // Good Job! | |
return (username.length >= 6 && password.length >= 6); // Yeah, bonus points for the one liner :-) | |
} | |
6. **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.* | |
function repeatString(str,count){ // OK, good job, but the intention was to make your own, not simply use str.repeat()... | |
return str.repeat(count); | |
} | |
```js | |
function repeatString(str, count) { | |
// TODO: your code here | |
} | |
repeatString('dog', 0); // => '' | |
repeatString('dog', 1); // => 'dog' | |
repeatString('dog', 2); // => 'dog' + 'dog' => 'dogdog' | |
repeatString('dog', 3); // => 'dog' + 'dog' + 'dog' => 'dogdogdog' | |
``` | |
7. Write a function called `average` that takes an array of numbers as a | |
parameter and returns the *average* of those numbers. | |
var numbers = []; | |
function average(numbers){ // Good job, checkout the styling on your for loop, on line 90 - 92, and semicolon on line 91 | |
var total = 0; | |
for (var i = 0; i < numbers.length; i++){ | |
total = total + numbers[i] | |
} | |
return total / numbers.length; | |
} | |
8. 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: | |
```js | |
function countWords(s) { | |
// ... | |
} | |
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): | |
```js | |
"HElLo".toLowerCase(); // => ??? | |
``` | |
function countWords(s){ // Good Job. | |
var words = (s.toLowerCase()).split(" "); // we don't need the () around the s.toLowerCase()... | |
var history = {}; | |
for (var i = 0; i < words.length; i++){ | |
if(history[words[i]]){ | |
history[words[i]]++; | |
} | |
else { | |
history[words[i]] = 1; | |
} | |
} | |
return history; | |
} | |
### Bonus | |
1. 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 reverseString(str){// Good Job! | |
return str.split('').reverse().join(''); | |
} | |
2. The function `Object.keys` returns an array of an object's *keys*. Experiment | |
with it at the console like this: | |
```js | |
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