-
Notifications
You must be signed in to change notification settings - Fork 61
Daniel JS Fundamentals #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1,15 @@ | ||
| // This function should accept a boolean value and return the string | ||
| // "Well done, you passed!" if the value is true, or "Sorry, try again" | ||
| // if the value is false. | ||
| function getResult (didPass) { | ||
|
|
||
| function getResult(didPass) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| if (didPass == true) { | ||
| return "Well done, you passed!"; | ||
| } else if (didPass == false) { | ||
| return "Sorry, try again"; | ||
| } | ||
| } | ||
|
|
||
| module.exports = { | ||
| a: getResult | ||
| } | ||
| a: getResult, | ||
| }; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,19 +1,25 @@ | ||
| // This function should return true if num is greater | ||
| // than or equal to lower AND less than or equal to upper. | ||
| // Implement this with a single condition. | ||
| function isInRange (num, lower, upper) { | ||
|
|
||
| function isInRange(num, lower, upper) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| if (num >= lower && num <= upper) { | ||
| return true; | ||
| } else { | ||
| return false; | ||
| } | ||
| } | ||
|
|
||
| // This function should return true if the passed string is equal | ||
| // to "Hello" or "Goodbye". Implement this with a single | ||
| // if statement. | ||
| function isHelloOrGoodbye (val1) { | ||
|
|
||
| function isHelloOrGoodbye(val1) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| if (val1 == "Hello" || val1 == "Goodbye") { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This can also be simplified: return val1 == 'Hello' || val1 == 'Goodbye' |
||
| return true; | ||
| } else { | ||
| return false; | ||
| } | ||
| } | ||
|
|
||
| // This function should return a string that describes the provided age value. The | ||
|
|
@@ -28,13 +34,23 @@ function isHelloOrGoodbye (val1) { | |
| // 5-12 | Child | ||
| // 13-19 | Teenager | ||
| // 20+ | Adult | ||
| function getAgeDescription (age) { | ||
|
|
||
| function getAgeDescription(age) { | ||
| // TODO: write code in this function body to pass the tests | ||
| if(age == 0 ) { | ||
| return "Baby"; | ||
| } else if (age >= 1 && age < 5) { | ||
| return "Toddler"; | ||
| } else if (age >= 5 && age < 13) { | ||
| return "Child"; | ||
| } else if (age >= 13 && age < 20) { | ||
| return "Teenager"; | ||
| } else if (age >= 20) { | ||
| return "Adult"; | ||
| } | ||
| } | ||
|
|
||
| module.exports = { | ||
| a: isInRange, | ||
| b: isHelloOrGoodbye, | ||
| c: getAgeDescription | ||
| } | ||
| c: getAgeDescription, | ||
| }; | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,28 +1,38 @@ | ||
| // TODO: Implement the functions below to make the tests pass | ||
|
|
||
| // This function should return true if there are no elements in the array, false otherwise | ||
| function isArrayEmpty (array) { | ||
|
|
||
| function isArrayEmpty(array) { | ||
| // TODO: write code in this function body to pass the tests | ||
| const arrayCheck = []; | ||
|
|
||
| if (array.length == arrayCheck) { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would be careful doing this. It does work, but in a little bit of a hacky way. If you wanted to compare the array to an empty array, you could do this like so: if (array === arrayCheck)However, by checking the length (which will be 0) against the array, you're actually doing something like this: if (0 === [])Javascript will let you do this, but a lot of languages won't. So just be careful! |
||
| return true; | ||
| } else { | ||
| return false; | ||
| } | ||
| } | ||
|
|
||
| // This function should return true if num1 is greater than num2, false otherwise | ||
| function isGreaterThan (num1, num2) { | ||
|
|
||
| function isGreaterThan(num1, num2) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| if (num1 > num2) { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This can also be simplified, same as above :) |
||
| return true; | ||
| } else { | ||
| return false; | ||
| } | ||
| } | ||
|
|
||
| // This function should return the lowest number in the passed array | ||
| function findLowest (nums) { | ||
|
|
||
| function findLowest(nums) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| m = Math.min(...nums); { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You could just return |
||
| return m | ||
| } | ||
| } | ||
|
|
||
|
|
||
| module.exports = { | ||
| a: isArrayEmpty, | ||
| b: isGreaterThan, | ||
| c: findLowest | ||
| } | ||
| c: findLowest, | ||
| }; | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,41 +1,71 @@ | ||
| // This function should return true if the passed string is equal to "Hello" | ||
| function isHello (val1) { | ||
|
|
||
| function isHello(val1) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| if (val1 === "Hello") { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This can also be simplified |
||
| return true; | ||
| } | ||
| if (val1 !== "Hello") { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If you did simplify the above, you wouldn't need this if statement. |
||
| return false; | ||
| } | ||
| } | ||
|
|
||
| // This function should return true if the passed string is not equal to "Hello" | ||
| function isNotHello (val1) { | ||
|
|
||
| function isNotHello(val1) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| if (val1 !== "Hello") { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same as above, you can simplify this by returning |
||
| return true; | ||
| } | ||
| if (val1 === "Hello") { | ||
| return false; | ||
| } | ||
| } | ||
|
|
||
| // This function should return true if the string val1 is is longer | ||
| // than string val2 | ||
| function isLongerThan (val1, val2) { | ||
|
|
||
| function isLongerThan(val1, val2) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| if (val1.length > val2.length) { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You could simplify this function by just returning this condition. You wouldn't need the other if statements then: return val1.length > val2.length |
||
| return true; | ||
| } | ||
| if (val2.length > val1.length) { | ||
| return false; | ||
| } | ||
| if (val1.length === val2.length) { | ||
| return false; | ||
| } | ||
| } | ||
|
|
||
| // This function should return true if the string passed in the function's first | ||
| // argument has an odd number of vowels | ||
|
|
||
| function hasOddNumberVowels (val1) { | ||
|
|
||
| function hasOddNumberVowels(val1) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| const numVowels = ["a", "e", "i", "o", "u"]; | ||
| let lowerVal1 = val1.toLowerCase() | ||
| let count = 0; | ||
|
|
||
| for (let i = 0; i < lowerVal1.length; i++) { | ||
| if (numVowels.includes(lowerVal1[i])) { | ||
| count++; | ||
| } | ||
| } | ||
| return count % 2 !== 0 | ||
| // if (count % 2 == 1) { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's always a good remove commented code that isn't needed anymore |
||
| // return true; | ||
| // } else if (count % 2 == 0) { | ||
| // return false; | ||
| // } | ||
| // return (count = 0); | ||
| } | ||
|
|
||
| // this function should return the middle character of a string if it has an odd number | ||
| // of characters. If there are an even number of characters the function should return | ||
| // the middle two letters | ||
|
|
||
| function getMiddleLetter (val1) { | ||
| function getMiddleLetter(val1) { | ||
| // TODO: write code in this function body to pass the tests | ||
|
|
||
| if (val1.length % 2 == 1) { | ||
| return val1[(val1.length+1) / 2 -1]; | ||
| } else if (val1.length % 2 == 0) { | ||
| return val1[val1.length / 2 - 1] + val1[val1.length / 2]; | ||
| } | ||
| } | ||
|
|
||
| // This function should return the name of the season for the provided | ||
|
|
@@ -47,16 +77,33 @@ function getMiddleLetter (val1) { | |
| // Summer - June to August | ||
| // Autumn - September to November | ||
| // Winter - December to February | ||
| function seasonForMonth (monthName) { | ||
|
|
||
| function seasonForMonth(monthName) { | ||
| // TODO: write code in this function body to pass the tests | ||
| Spring= ['March','April','May'] | ||
| Summer= ['June','July','August'] | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Great use of arrays. Just be aware that you should create your variables like so: const Spring = ['Match', 'April', 'May'] |
||
| Autumn= ["September","October","November"] | ||
| Winter= ['December','January','February'] | ||
|
|
||
| if (Spring.includes(monthName)) { | ||
| return "Spring" | ||
| } else if (Summer.includes(monthName)) { | ||
| return "Summer" | ||
| } else if (Autumn.includes(monthName)) { | ||
| return "Autumn" | ||
| } else if (Winter.includes(monthName)) { | ||
| return "Winter" | ||
| } else { | ||
| return '' | ||
| } | ||
| } | ||
|
|
||
| module.exports = { | ||
| a: isHello, | ||
| b: isNotHello, | ||
| c: isLongerThan, | ||
| d: hasOddNumberVowels, | ||
| e: getMiddleLetter, | ||
| f: seasonForMonth | ||
| } | ||
| f: seasonForMonth, | ||
| }; | ||
|
|
||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be simplified.
num >= lower && num <= uppercreates a boolean value that represents if num is greater than or equal to lower AND is less than or equal to upper. So we can just return that value instead of doing the if statement. Like so: