Skip to content

Instantly share code, notes, and snippets.

@rexfordkelly-at-makersquare
Forked from fbslee/checkpointFelipe.js
Last active August 25, 2016 00:12
Show Gist options
  • Save rexfordkelly-at-makersquare/6cbdac7d0b86d2bdbbfdea5b950f4589 to your computer and use it in GitHub Desktop.
Save rexfordkelly-at-makersquare/6cbdac7d0b86d2bdbbfdea5b950f4589 to your computer and use it in GitHub Desktop.
# 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