Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed _images/._test-output1.png
Binary file not shown.
1 change: 1 addition & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 8 additions & 5 deletions src/conditional-flow/boolean-conditions.js
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,
};
36 changes: 26 additions & 10 deletions src/conditional-flow/multiple-conditions.js
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) {
Copy link
Contributor

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 <= upper creates 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:

return 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") {
Copy link
Contributor

Choose a reason for hiding this comment

The 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
Expand All @@ -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,
};
30 changes: 20 additions & 10 deletions src/conditional-flow/numeric-conditions.js
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) {
Copy link
Contributor

Choose a reason for hiding this comment

The 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) {
Copy link
Contributor

Choose a reason for hiding this comment

The 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); {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could just return Math.min(...nums) here

return m
}
}


module.exports = {
a: isArrayEmpty,
b: isGreaterThan,
c: findLowest
}
c: findLowest,
};
91 changes: 69 additions & 22 deletions src/conditional-flow/string-conditions.js
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") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can also be simplified

return true;
}
if (val1 !== "Hello") {
Copy link
Contributor

Choose a reason for hiding this comment

The 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") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above, you can simplify this by returning val1 !== 'Hello'. Then you wouldn't need the second if statement.

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) {
Copy link
Contributor

Choose a reason for hiding this comment

The 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) {
Copy link
Contributor

Choose a reason for hiding this comment

The 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
Expand All @@ -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']
Copy link
Contributor

Choose a reason for hiding this comment

The 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,
};



8 changes: 4 additions & 4 deletions src/data-types/arrays/accessing-elements.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ const cities = ['London', 'Shanghai', 'New York', 'Delhi', 'Kuala Lumpur']
// TODO: write code to pass the tests

// Set names equal to an array containing 'Bob', 'Jane', 'Joanna' in that order
const names = null
const names = ['Bob', 'Jane', 'Joanna']

// Set fourthCity to the 4th element in the cities array
const fourthCity = ''
const fourthCity = cities[3]

// Set firstCity to the 1st element in the cities array
const firstCity = ''
const firstCity = cities[0]

// Set lengthOfCitiesArray to the length of the cities array
const lengthOfCitiesArray = NaN
const lengthOfCitiesArray = cities.length

// Do not edit this exported object
module.exports = {
Expand Down
14 changes: 7 additions & 7 deletions src/data-types/arrays/adding-removing-elements.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,25 @@ const fruits = ['Apple', 'Orange', 'Pear']
// TODO: write code to pass the tests

// Edit this code to add 'Fred' to the names array
names.push(undefined)
names.push('Fred')

// Edit this code to add 4 to the end of the numbers array
numbers.push(NaN)
numbers.push(4)

// Edit this code to add 'Rio' to the start of the cities array
cities.unshift(undefined)
cities.unshift('Rio')

// Use an array method to remove the first item from colours
colours
colours.shift()

// Use an array method to remove the last item from keys
keys
keys.pop()

// Use an array method to remove 'Jordon' from the countries array
countries.splice(NaN, NaN)
countries.splice(1,1)

// use an array method to remove the last item from the fruits array and store the value in the pear variable
const pear = fruits.undefined
const pear = fruits.pop()

// Do not edit this exported object
module.exports = {
Expand Down
12 changes: 6 additions & 6 deletions src/data-types/numbers.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@ const numThree = 32
// TODO: Add code below using Javascript numeric operators so that the tests pass

// Set this variable to numOne added to numTwo
const numOnePlusNumTwo = NaN
const numOnePlusNumTwo = numOne + numTwo

// Set this variable to numThree multiplied by numTwo
const numThreeTimesNumTwo = NaN
const numThreeTimesNumTwo = numThree * numTwo

// Set this variable to numThree divided by numOne
const numThreeDividedByNumOne = NaN
const numThreeDividedByNumOne = numThree/numOne

// Set this variable to numThree minus numOne
const numThreeMinusNumOne = NaN
const numThreeMinusNumOne = numThree - numOne

// Set this variable to the sum of numOne, numTwo and numThree
const sum = NaN
const sum = numOne + numTwo + numThree

// Set this variable to the sum of (numOne, numTwo, numThree) divided by numOne
const numBytes = NaN
const numBytes = (numOne+numTwo+numThree)/numOne

// do not edit the exported object.
module.exports = {
Expand Down
18 changes: 16 additions & 2 deletions src/data-types/objects/creating-objects.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
// TODO: write code in this section to pass the tests. You will need to add new code
// as well as modify some of the existing code
const person = null
const computer = null
const person = {
name: 'Jane',
age: 32
};

const computer = {
form:'laptop',
specs: {
memory: '16GB',
storage: '1TB'
}
};





// Do not edit this exported object
module.exports = {
Expand Down
Loading