From 4142334de5a8dcefd080d3022e9b0397bb44be83 Mon Sep 17 00:00:00 2001 From: SaintPeter Date: Tue, 22 Dec 2015 13:27:17 -0800 Subject: [PATCH] Change display for blockquote and h4 lines --- .../basic-javascript.json | 246 ++++++++++++------ 1 file changed, 165 insertions(+), 81 deletions(-) diff --git a/challenges/01-front-end-development-certification/basic-javascript.json b/challenges/01-front-end-development-certification/basic-javascript.json index 2763f16f4e..305ea24fd4 100644 --- a/challenges/01-front-end-development-certification/basic-javascript.json +++ b/challenges/01-front-end-development-certification/basic-javascript.json @@ -13,7 +13,8 @@ "// This is a comment.", "The slash-star-star-slash comment will comment out everything between the /* and the */ characters:", "/* This is also a comment */", - "

Instructions

Try creating one of each type of comment." + "

Instructions

", + "Try creating one of each type of comment." ], "tests": [ "assert(editor.getValue().match(/(\\/\\/)...../g), 'message: Create a // style comment that contains at least five letters.');", @@ -29,7 +30,8 @@ "description": [ "In computer science, data structures are things that hold data. JavaScript has seven of these. For example, the Number data structure holds numbers.", "Let's learn about the most basic data structure of all: the Boolean. Booleans can only hold the value of either true or false. They are basically little on-off switches.", - "

Instructions

Modify the welcomeToBooleans function so that it will return true instead of false when the run button is clicked." + "

Instructions

", + "Modify the welcomeToBooleans function so that it will return true instead of false when the run button is clicked." ], "tests": [ "assert(typeof(welcomeToBooleans()) === 'boolean', 'message: The welcomeToBooleans() function should return a boolean (true/false) value.');", @@ -58,7 +60,8 @@ "When we store data in a data structure, we call it a variable. These variables are no different from the x and y variables you use in math.", "Let's create our first variable and call it \"myName\".", "You'll notice that in myName, we didn't use a space, and that the \"N\" is capitalized. JavaScript variables are written in camel case. An example of camel case is: camelCase.", - "

Instructions

Use the var keyword to create a variable called myName. Set its value to your name, in double quotes.", + "

Instructions

", + "Use the var keyword to create a variable called myName. Set its value to your name, in double quotes.", "Hint", "Look at the ourName example if you get stuck." ], @@ -89,7 +92,8 @@ "myVar = 5;", "myNum = myVar;", "Assigns 5 to myVar and then resolves myVar to 5 again and assigns it to myNum.", - "

Instructions

Assign the value 7 to variable a", + "

Instructions

", + "Assign the value 7 to variable a", "Assign the contents of a to variable b." ], "releasedOn": "11/27/2015", @@ -133,7 +137,8 @@ "var myVar = 0;", "Creates a new variable called myVar and assigns it an inital value of 0.", "", - "

Instructions

Define a variable a with var and initialize it to a value of 9." + "

Instructions

", + "Define a variable a with var and initialize it to a value of 9." ], "releasedOn": "11/27/2015", "tests": [ @@ -165,7 +170,8 @@ "title": "Understanding Uninitialized Variables", "description": [ "When Javascript variables are declared, they have an inital value of undefined. If you do a mathematical operation on an undefined variable your result will be NaN which means \"Not a Number\". If you concatanate a string with an undefined variable, you will get a literal string of \"undefined\".", - "

Instructions

Initialize the three variables a, b, and c with 5, 10, and \"I am a\" respectively so that they will not be undefined." + "

Instructions

", + "Initialize the three variables a, b, and c with 5, 10, and \"I am a\" respectively so that they will not be undefined." ], "releasedOn": "11/27/2015", "tests": [ @@ -214,7 +220,8 @@ "MYVAR is not the same as MyVar nor myvar. It is possible to have mulitpe distinct variables with the same name but different capitalization. It is strongly reccomended that for sake of clarity you do not use this language feature.", "

Best Practice

Variables in Javascript should use camelCase. In camelCase, variables made of multiple words have the first word in all lowercase and the first letter of each subsequent word capitalized.
", "Examples:
var someVariable;
var anotherVariableName;
var thisVariableNameIsTooLong;
", - "

Instructions

Correct the variable assignements so their names match their variable declarations above." + "

Instructions

", + "Correct the variable assignements so their names match their variable declarations above." ], "releasedOn": "11/27/2015", "tests": [ @@ -258,7 +265,8 @@ "description": [ "Let's try to add two numbers using JavaScript.", "JavaScript uses the + symbol for addition.", - "

Instructions

Change the 0 so that sum will equal 20." + "

Instructions

", + "Change the 0 so that sum will equal 20." ], "tests": [ "assert(sum === 20, 'message: sum should equal 20');", @@ -280,7 +288,8 @@ "description": [ "We can also subtract one number from another.", "JavaScript uses the - symbol for subtraction.", - "

Instructions

Change the 0 so that difference will equal 12." + "

Instructions

", + "Change the 0 so that difference will equal 12." ], "tests": [ "assert(difference === 12, 'message: Make the variable difference equal 12.');", @@ -306,7 +315,8 @@ "description": [ "We can also multiply one number by another.", "JavaScript uses the * symbol for multiplication.", - "

Instructions

Change the 0 so that product will equal 80." + "

Instructions

", + "Change the 0 so that product will equal 80." ], "tests": [ "assert(product === 80,'message: Make the variable product equal 80');", @@ -332,7 +342,8 @@ "description": [ "We can also divide one number by another.", "JavaScript uses the / symbol for division.", - "

Instructions

Change the 0 so that quotient will equal 2." + "

Instructions

", + "Change the 0 so that quotient will equal 2." ], "tests": [ "assert(quotient === 2, 'message: Make the variable quotient equal 2.');", @@ -357,7 +368,8 @@ "i++;", "is the equivilent of", "i = i + 1;", - "

Instructions

Change the code to use the ++ operator on myVar" + "

Instructions

", + "Change the code to use the ++ operator on myVar" ], "releasedOn": "11/27/2015", "tests": [ @@ -395,7 +407,8 @@ "i--;", "is the equivilent of", "i = i - 1;", - "

Instructions

Change the code to use the -- operator on myVar" + "

Instructions

", + "Change the code to use the -- operator on myVar" ], "releasedOn": "11/27/2015", "tests": [ @@ -506,7 +519,8 @@ "Math.floor(5 / 2) === 2
2 * 2 === 4
5 - 4 === 1
", "Usage", "Modulus can be helpful in creating alternating or cycling values. For example, in a loop an increasing variable myVar % 2 will alternate between 0 and 1 as myVar goes between even and odd numbers respectively.", - "

Instructions

Set remainder equal to the remainder of 11 divided by 3 using the modulus operator." + "

Instructions

", + "Set remainder equal to the remainder of 11 divided by 3 using the modulus operator." ], "releasedOn": "11/27/2015", "tests": [ @@ -545,7 +559,8 @@ "to add 5 to myVar. Since this is such a common pattern, there are operators which do both a mathematical operation and assignement in one step.", "One such operator is the += operator.", "myVar += 5; will add 5 to myVar.", - "

Instructions

Convert the assignements for a, b, and c to use the += operator." + "

Instructions

", + "Convert the assignements for a, b, and c to use the += operator." ], "releasedOn": "11/27/2015", "tests": [ @@ -595,7 +610,8 @@ "myVar = myVar - 5;", "Will subtract 5 from myVar. This can be rewritten as: ", "myVar -= 5;", - "

Instructions

Convert the assignements for a, b, and c to use the -= operator." + "

Instructions

", + "Convert the assignements for a, b, and c to use the -= operator." ], "releasedOn": "11/27/2015", "tests": [ @@ -648,7 +664,8 @@ "myVar = myVar * 5;", "Will multiply myVar by 5. This can be rewritten as: ", "myVar *= 5;", - "

Instructions

Convert the assignements for a, b, and c to use the *= operator." + "

Instructions

", + "Convert the assignements for a, b, and c to use the *= operator." ], "releasedOn": "11/27/2015", "tests": [ @@ -699,7 +716,8 @@ "myVar = myVar / 5;", "Will divide myVar by 5. This can be rewritten as: ", "myVar /= 5;", - "

Instructions

Convert the assignments for a, b, and c to use the /= operator." + "

Instructions

", + "Convert the assignments for a, b, and c to use the /= operator." ], "releasedOn": "11/27/2015", "tests": [ @@ -797,7 +815,8 @@ "title": "Declare String Variables", "description": [ "Previously we have used the code var myName = \"your name\". This is what we call a String variable. It is nothing more than a \"string\" of characters. JavaScript strings are always wrapped in quotes.", - "

Instructions

Create two new string variables: myFirstName and myLastName and assign them the values of your first and last name, respectively." + "

Instructions

", + "Create two new string variables: myFirstName and myLastName and assign them the values of your first and last name, respectively." ], "tests": [ "assert((function(){if(typeof(myFirstName) !== \"undefined\" && typeof(myFirstName) === \"string\" && myFirstName.length > 0){return true;}else{return false;}})(), 'message: myFirstName should be a string with at least one character in it.');", @@ -829,7 +848,8 @@ "description": [ "When you are defining a string you must start and end with a double or single quote. What happens when you need a literal quote inside of your string?", "In Javascript you can escape a quote inside a string by placing a backslash (\\) in front of the quote. This signals Javascript that the following quote is not the end of the string, but should instead should appear inside the string.", - "

Instruction

Use backslashes to assign the following to myStr:
\"I am a \"double quoted\" string inside \"double quotes\"\"" + "

Instruction

", + "Use backslashes to assign the following to myStr:
\"I am a \"double quoted\" string inside \"double quotes\"\"" ], "releasedOn": "11/27/2015", "tests": [ @@ -859,7 +879,8 @@ "\"This string has \\\"double quotes\\\" in it\"", "The value in using one or the other has to do with the need to escape quotes of the same type. If you have a string with many double quotes, this can be difficult to write and to read. Instead, use single quotes:", "'This string has \"double quotes\" in it'", - "

Instructions

Change the provided string from double to single quotes and remove the escaping." + "

Instructions

", + "Change the provided string from double to single quotes and remove the escaping." ], "releasedOn": "11/27/2015", "tests": [ @@ -889,7 +910,8 @@ "Quotes are not the only character than can be escaped inside a string. Here is a table of common escape sequences:", "
CodeOutput
\\'single quote
\\\"double quote
\\\\backslash
\\nnew line
\\rcarriage return
\\ttab
\\bbackspace
\\fform feed
", "Note that the backslash itself must be escaped in order to display as a backslash.", - "

Instructions

Encode the following sequence, seperated by spaces:
backslash tab tab carriage return new line and assign it to myStr" + "

Instructions

", + "Encode the following sequence, seperated by spaces:
backslash tab tab carriage return new line and assign it to myStr" ], "releasedOn": "11/27/2015", "tests": [ @@ -916,7 +938,8 @@ "title": "Concatanting Strings with the Plus Operator", "description": [ "In Javascript the + operator for strings is called the concatanation operator. You can build strings out of other strings by concatanating them together.", - "

Instructions

Build myStr from the strings \"This is the start. \" and \"This is the end.\" using the + operator.", + "

Instructions

", + "Build myStr from the strings \"This is the start. \" and \"This is the end.\" using the + operator.", "" ], "releasedOn": "11/27/2015", @@ -986,7 +1009,8 @@ "title": "Constructing Strings with Variables", "description": [ "Sometimes you will need to build a string, Mad Libs style. By using the concatanation operator (+) you can insert one or more varaibles into a string you're building.", - "

Instructions

Set myName and build myStr with myName between the strings \"My name is \" and \" and I am swell!\"" + "

Instructions

", + "Set myName and build myStr with myName between the strings \"My name is \" and \" and I am swell!\"" ], "releasedOn": "11/27/2015", "tests": [ @@ -1021,7 +1045,8 @@ "title": "Appending Variables to Strings", "description": [ "Just as we can build a string over multiple lines out of string literals, we can also append variables to a string using the plus equals (+=) operator.", - "

Instructions

Set someAdjective and append it to myStr using the += operator." + "

Instructions

", + "Set someAdjective and append it to myStr using the += operator." ], "releasedOn": "11/27/2015", "tests": [ @@ -1063,7 +1088,8 @@ "description": [ "Data structures have properties. For example, strings have a property called .length that will tell you how many characters are in the string.", "For example, if we created a variable var firstName = \"Charles\", we could find out how long the string \"Charles\" is by using the firstName.length property.", - "

Instructions

Use the .length property to count the number of characters in the lastName variable and assign it to lastNameLength." + "

Instructions

", + "Use the .length property to count the number of characters in the lastName variable and assign it to lastNameLength." ], "tests": [ "assert((function(){if(typeof(lastNameLength) !== \"undefined\" && typeof(lastNameLength) === \"number\" && lastNameLength === 8){return true;}else{return false;}})(), 'message: lastNameLength should be equal to eight.');", @@ -1100,7 +1126,8 @@ "Bracket notation is a way to get a character at a specific index within a string.", "Computers don't start counting at 1 like humans do. They start at 0. This is refered to as Zero-based indexing.", "For example, the character at index 0 in the word \"Charles\" is \"C\". So if var firstName = \"Charles\", you can get the value of the first letter of the string by using firstName[0].", - "

Instructions

Use bracket notation to find the first character in the lastName variable and assign it to firstLetterOfLastName.", + "

Instructions

", + "Use bracket notation to find the first character in the lastName variable and assign it to firstLetterOfLastName.", "Hint
Try looking at the firstLetterOfFirstName variable declaration if you get stuck." ], "tests": [ @@ -1142,7 +1169,8 @@ "var myStr = \"Bob\";
myStr[0] = \"J\";
", "will not change the contents of myStr to \"Job\", because the contents of myStr cannot be altered. Note that this does not mean that myStr cannot be change, just that individual characters cannot be changes. The only way to change myStr would be to overwrite the contents with a new string, like this:", "var myStr = \"Bob\";
myStr = \"Job\";
", - "

Instructions

Correct the assignment to myStr to achieve the desired effect." + "

Instructions

", + "Correct the assignment to myStr to achieve the desired effect." ], "releasedOn": "11/27/2015", "tests": [ @@ -1180,7 +1208,8 @@ "description": [ "You can also use bracket notation to get the character at other positions within a string.", "Remember that computers start counting at 0, so the first character is actually the zeroth character.", - "

Instructions

Let's try to set thirdLetterOfLastName to equal the third letter of the lastName variable.", + "

Instructions

", + "Let's try to set thirdLetterOfLastName to equal the third letter of the lastName variable.", "Hint
Try looking at the secondLetterOfFirstName variable declaration if you get stuck." ], "tests": [ @@ -1215,7 +1244,8 @@ "description": [ "In order to get the last letter of a string, you can subtract one from the string's length.", "For example, if var firstName = \"Charles\", you can get the value of the last letter of the string by using firstName[firstName.length - 1].", - "

Instructions

Use bracket notation to find the last character in the lastName variable.", + "

Instructions

", + "Use bracket notation to find the last character in the lastName variable.", "Hint
Try looking at the lastLetterOfFirstName variable declaration if you get stuck." ], "tests": [ @@ -1251,7 +1281,8 @@ "description": [ "You can use the same principle we just used to retrieve the last character in a string to retrieve the Nth-to-last character.", "For example, you can get the value of the third-to-last letter of the var firstName = \"Charles\" string by using firstName[firstName.length - 3]", - "

Instructions

Use bracket notation to find the second-to-last character in the lastName string.", + "

Instructions

", + "Use bracket notation to find the second-to-last character in the lastName string.", " Hint
Try looking at the thirdToLastLetterOfFirstName variable declaration if you get stuck." ], "tests": [ @@ -1336,7 +1367,8 @@ "description": [ "With JavaScript array variables, we can store several pieces of data in one place.", "You start an array declaration with an opening square bracket, end it with a closing square bracket, and put a comma between each entry, like this:
var sandwich = [\"peanut butter\", \"jelly\", \"bread\"].", - "

Instructions

Create a new array called myArray that contains both a string and a number (in that order).", + "

Instructions

", + "Create a new array called myArray that contains both a string and a number (in that order).", "Hint
Refer to the example code in the text editor if you get stuck." ], "tests": [ @@ -1366,7 +1398,8 @@ "title": "Nest one Array within Another Array", "description": [ "You can also nest arrays within other arrays, like this: [[\"Bulls\", 23]]. This is also called a Multi-dimensional Array.", - "

Instructions

Create a nested array called myArray." + "

Instructions

", + "Create a nested array called myArray." ], "tests": [ "assert(Array.isArray(myArray) && myArray.some(Array.isArray), 'message: myArray should have at least one array nested within another array.');" @@ -1398,7 +1431,8 @@ "var array = [1,2,3];", "array[0]; //equals 1", "var data = array[1];", - "

Instructions

Create a variable called myData and set it to equal the first value of myArray." + "

Instructions

", + "Create a variable called myData and set it to equal the first value of myArray." ], "tests": [ "assert((function(){if(typeof(myArray) != 'undefined' && typeof(myData) != 'undefined' && myArray[0] == myData){return true;}else{return false;}})(), 'message: The variable myData should equal the first value of myArray.');" @@ -1432,7 +1466,8 @@ "For example:", "var ourArray = [3,2,1];", "ourArray[0] = 1; // equals [1,2,1]", - "

Instructions

Modify the data stored at index 0 of myArray to a value of 3." + "

Instructions

", + "Modify the data stored at index 0 of myArray to a value of 3." ], "tests": [ "assert((function(){if(typeof(myArray) != 'undefined' && myArray[0] == 3 && myArray[1] == 2 && myArray[2] == 3){return true;}else{return false;}})(), 'message: myArray should now be [3,2,3].');", @@ -1470,7 +1505,8 @@ "arr[0]; // equals [1,2,3]", "arr[1][2]; // equals 6", "arr[3][0][1]; // equals 11", - "

Instructions

Read from myArray using bracket notation so that myData is equal to 8" + "

Instructions

", + "Read from myArray using bracket notation so that myData is equal to 8" ], "tests": [ "assert(myData === 8, 'message: myData should be equal to 8.');", @@ -1502,7 +1538,8 @@ "var arr = [1,2,3];", "arr.push(4);", "// arr is now [1,2,3,4]", - "

Instructions

Push [\"dog\", 3] onto the end of the myArray variable." + "

Instructions

", + "Push [\"dog\", 3] onto the end of the myArray variable." ], "tests": [ "\nassert((function(d){if(d[2] != undefined && d[0][0] == 'John' && d[0][1] == 23 && d[2][0] == 'dog' && d[2][1] == 3 && d[2].length == 2){return true;}else{return false;}})(myArray), 'message: myArray should now equal [[\"John\", 23], [\"cat\", 2], [\"dog\", 3]].');" @@ -1537,7 +1574,8 @@ "Another way to change the data in an array is with the .pop() function. ", ".pop() is used to \"pop\" a value off of the end of an array. We can store this \"popped off\" variable by performing pop() within a variable declaration.", "Any type of data structure can be \"popped\" off of an array - numbers, strings, even nested arrays.", - "

Instructions

Use the .pop() function to remove the last item from myArray, assigning the \"popped off\" value to removedFromMyArray." + "

Instructions

", + "Use the .pop() function to remove the last item from myArray, assigning the \"popped off\" value to removedFromMyArray." ], "tests": [ "assert((function(d){if(d[0][0] == 'John' && d[0][1] == 23 && d[2] == undefined){return true;}else{return false;}})(myArray), 'message: myArray should only contain [[\"John\", 23]].');", @@ -1572,7 +1610,8 @@ "description": [ "pop() always removes the last element of an array. What if you want to remove the first?", "That's where .shift() comes in. It works just like .pop(), except it removes the first element instead of the last.", - "

Instructions

Use the .shift() function to remove the first item from myArray, assigning the \"shifted off\" value to removedFromMyArray." + "

Instructions

", + "Use the .shift() function to remove the first item from myArray, assigning the \"shifted off\" value to removedFromMyArray." ], "tests": [ "assert((function(d){if(d[0][0] == 'dog' && d[0][1] == 3 && d[1] == undefined){return true;}else{return false;}})(myArray), 'message: myArray should now equal [[\"dog\", 3]].');", @@ -1610,7 +1649,8 @@ "description": [ "Not only can you shift elements off of the beginning of an array, you can also unshift elements onto the beginning of an array.", "unshift() works exactly like push(), but instead of adding the element at the end of the array, unshift() adds the element at the beginning of the array.", - "

Instructions

Add [\"Paul\",35] onto the beginning of the myArray variable using unshift()." + "

Instructions

", + "Add [\"Paul\",35] onto the beginning of the myArray variable using unshift()." ], "tests": [ "assert((function(d){if(typeof(d[0]) === \"object\" && d[0][0].toLowerCase() == 'paul' && d[0][1] == 35 && d[1][0] != undefined && d[1][0] == 'dog' && d[1][1] != undefined && d[1][1] == 3){return true;}else{return false;}})(myArray), 'message: myArray should now have [[\"Paul\", 35], [\"dog\", 3]]).');" @@ -1713,7 +1753,8 @@ "You can call or invoke this function by using its name followed by parentheses, like this:", "functionName();", "Each time the function is called it will print out the message \"Hello World\" on the dev console. All of the code between the curly braces will be executed every time the function is called.", - "

Instructions

Create a function called myFunction which prints \"Hi World\" to the dev console. Call that function." + "

Instructions

", + "Create a function called myFunction which prints \"Hi World\" to the dev console. Call that function." ], "tests": [ "assert(typeof myFunction === 'function', 'message: myFunction should be a function');", @@ -1773,7 +1814,8 @@ "Then we can call testFun:", "testFun(\"Hello\", \"World\");", "We have passed two arguments, \"Hello\" and \"World\". Inside the function, param1 will equal \"Hello\" and param2 will equal \"World\". Note that you could call testFun again with different arguments and the parameters would take on the value of the new arguments.", - "

Instructions

Create a function called myFunction that accepts two arguments and outputs their sum to the dev console. Call your function." + "

Instructions

", + "Create a function called myFunction that accepts two arguments and outputs their sum to the dev console. Call your function." ], "releasedOn": "11/27/2015", "tests": [ @@ -1835,7 +1877,8 @@ "description": [ "In Javascript, scope refers to the visibility of variables. Variables which are defined outside of a function block have Global scope. This means the can be seen everywhere in your Javascript code. ", "Variables which are used without the var keyword are automatically created in the global scope. This can create unintended concequences elsewhere in your code or when running a function again. You should always declare your variables with var.", - "

Instructions

Declare a global variable myGlobal outside of any function. Initialize it to have a value of 10 ", + "

Instructions

", + "Declare a global variable myGlobal outside of any function. Initialize it to have a value of 10 ", "Inside function fun1, assign 5 to oopsGlobal without using the var keyword." ], "releasedOn": "11/27/2015", @@ -1907,7 +1950,8 @@ "Here is a function myTest with a local variable called loc.", "
function myTest() {
var local1 = \"foo\";
console.log(local1);
}
myTest(); // \"foo\"
console.log(local1); // \"undefined\"
", "local1 is not defined outside of the function.", - "

Instructions

Declare a local variable myVar inside myFunction" + "

Instructions

", + "Declare a local variable myVar inside myFunction" ], "releasedOn": "11/27/2015", "tests": [ @@ -1940,7 +1984,12 @@ "id": "56533eb9ac21ba0edf2244c0", "title": "Global vs. Local Scope in Functions", "description": [ - "Show how global and local scopes interact" + "It is possible to have both a local and global variables with the same name. When you do this, the local variable takes precedence over the global variable.", + "In this example:", + "
var someVar = \"Hat\";
function myFun() {
var someVar = \"Head\";
return someVar;
}
", + "The function myFun will return \"Head\" because the local version of the variable is present.", + "

Instructions

", + "Add a local variable to myFunction to override the value of " ], "releasedOn": "11/27/2015", "tests": [ @@ -1999,7 +2048,8 @@ "For Example:", "
function plusThree(num) {
return num + 3;
}
var answer = plusThree(5); // 8
", "plusThree takes an argument for num and returns a value equal to num + 3.", - "

Instructions

Create a function timesFive that accepts one argument, multiplies it by 5, and returns the new value." + "

Instructions

", + "Create a function timesFive that accepts one argument, multiplies it by 5, and returns the new value." ], "releasedOn": "11/27/2015", "tests": [ @@ -2168,7 +2218,8 @@ "For example:", "
function test(myVal) {
if (myVal > 10) {
return \"Greater Than\";
}
return \"Not Greater Than\";
}
", "If myVal is greater than 10, the function will return \"Greater Than\". If it is not, the function will return \"Not Greater Than\".", - "

Instructions

Create an if statement inside the function to return \"Yes\" if testMe is greater than 5. Return \"No\" if it is less than 5." + "

Instructions

", + "Create an if statement inside the function to return \"Yes\" if testMe is greater than 5. Return \"No\" if it is less than 5." ], "tests": [ "assert(typeof myFunction === \"function\", 'message: myFunction should be a function');", @@ -2222,7 +2273,8 @@ "If myVal is equal to 10, the function will return \"Equal\". If it is not, the function will return \"Not Equal\".", "The equality operator will do it's best to convert values for comparison, for example:", "
1 == 1 // true
\"1\" == 1 // true
1 == '1' // true
0 == false // true
0 == null // false
0 == undefined // false
null == undefined // true
", - "

Instructions

Add the equality operator to the indicated line so the function will return \"Equal\" when val is equivilent to 12" + "

Instructions

", + "Add the equality operator to the indicated line so the function will return \"Equal\" when val is equivilent to 12" ], "releasedOn": "11/27/2015", "tests": [ @@ -2265,7 +2317,8 @@ "description": [ "Strict equality (===) is the counterpart to the equality operator (==). Unlike the equality operator, strict equality tests both the type and value of the compared elements.", "Examples
3 === 3 // true
3 === '3' // false
", - "

Instructions

Change the equality operator to a strict equality on the if statement so the function will return \"Equal\" when val is strictltly equal to 7" + "

Instructions

", + "Change the equality operator to a strict equality on the if statement so the function will return \"Equal\" when val is strictltly equal to 7" ], "releasedOn": "11/27/2015", "tests": [ @@ -2308,7 +2361,8 @@ "description": [ "The inequality operator (!=) is the opposite of the equality operator. It means \"Not Equal\" and returns false where equality would return true and vice versa. Like the equality operator, the inequality operator will convert types.", "Examples
1 != 2 // true
1 != \"1\" // false
1 != '1' // false
1 != true // false
0 != false // false
", - "

Instructions

Add the inequality operator != to the if statement so the function will return \"Not Equal\" when val is not equivilent to 99" + "

Instructions

", + "Add the inequality operator != to the if statement so the function will return \"Not Equal\" when val is not equivilent to 99" ], "releasedOn": "11/27/2015", "tests": [ @@ -2353,7 +2407,8 @@ "description": [ "The inequality operator (!==) is the opposite of the strict equality operator. It means \"Strictly Not Equal\" and returns false where strict equality would return true and vice versa. Strict inequality will not convert types.", "Examples
3 !== 3 // false
3 !== '3' // true
4 !== 3 // true
", - "

Instructions

Add the strict inequality operator to the if statement so the function will return \"Not Equal\" when val is not strictly equal to 17" + "

Instructions

", + "Add the strict inequality operator to the if statement so the function will return \"Not Equal\" when val is not strictly equal to 17" ], "releasedOn": "11/27/2015", "tests": [ @@ -2402,7 +2457,8 @@ "description": [ "The greater than operator (>) compares the values of two numbers. If the number to the left is greater than the number to the right, it returns true. If the number on the left is less than or equal to the number on the right, it returns false. Like the equality operator, greater than converts data types.", "Examples
5 > 3 // true
7 > '3' // true
2 > 3 // false
'1' > 9 // false
", - "

Instructions

Add the greater than operator to the indicated lines so that the return statements make sense." + "

Instructions

", + "Add the greater than operator to the indicated lines so that the return statements make sense." ], "releasedOn": "11/27/2015", "tests": [ @@ -2455,7 +2511,8 @@ "description": [ "The greater than equal to operator (>=) compares the values of two numbers. If the number to the left is greater than or equal the number to the right, it returns true. If the number on the left is less than the number on the right, it returns false. Like the equality operator, greater than equal to converts data types.", "Examples
6 >= 6 // true
7 >= '3' // true
2 >= 3 // false
'7' >= 9 // false
", - "

Instructions

Add the greater than equal to operator to the indicated lines so that the return statements make sense." + "

Instructions

", + "Add the greater than equal to operator to the indicated lines so that the return statements make sense." ], "releasedOn": "11/27/2015", "tests": [ @@ -2501,7 +2558,8 @@ "description": [ "The less than operator (<) compares the values of two numbers. If the number to the left is less than the number to the right, it returns true. If the number on the left is greater than or equal to the number on the right, it returns false. Like the equality operator, less than converts data types.", "Examples
2 < 5 // true
'3' < 7 // true
5 < 5 // false
3 < 2 // false
'8' < 4 // false
", - "

Instructions

Add the less than operator to the indicated lines so that the return statements make sense." + "

Instructions

", + "Add the less than operator to the indicated lines so that the return statements make sense." ], "releasedOn": "11/27/2015", "tests": [ @@ -2546,7 +2604,8 @@ "description": [ "The less than equal to operator (<=) compares the values of two numbers. If the number to the left is less than or equl the number to the right, it returns true. If the number on the left is greater than the number on the right, it returns false. Like the equality operator, less than equal to converts data types.", "Examples
4 <= 5 // true
'7' <= 7 // true
5 <= 5 // true
3 <= 2 // false
'8' <= 4 // false
", - "

Instructions

Add the less than equal to operator to the indicated lines so that the return statements make sense." + "

Instructions

", + "Add the less than equal to operator to the indicated lines so that the return statements make sense." ], "releasedOn": "11/27/2015", "tests": [ @@ -2593,7 +2652,8 @@ "Sometimes you will need to test more than one thing at a time. The logical and operator (&&) returns true if and only if the operands to the left and right of it are true.", "The same effect could be achieved by nesting an if statement inside another if:", "
if (num < 10) {
if (num > 5) {
return \"Yes\";
}
}
return \"No\";
Will only return \"Yes\" if num is between 6 and 9. The same logic can be written as:
if (num < 10 && num > 5) {
return \"Yes\";
}
return \"No\";
", - "

Instructions

Combine the two if statements into one statement which returns \"Yes\" if val is less than or equal to 50 and greater than or equal to 25. Otherwise, return \"No\"." + "

Instructions

", + "Combine the two if statements into one statement which returns \"Yes\" if val is less than or equal to 50 and greater than or equal to 25. Otherwise, return \"No\"." ], "releasedOn": "11/27/2015", "tests": [ @@ -2648,7 +2708,8 @@ "The logical or operator (||) returns true if either ofoperands is true, or false if neither is true.", "The pattern below should look familiar from prior waypoints:", "
if (num > 10) {
return \"No\";
}
if (num < 5) {
return \"No\";
}
return \"Yes\";
Will only return \"Yes\" if num is between 5 and 10. The same logic can be written as:
if (num > 10 || num < 5) {
return \"No\";
}
return \"Yes\";
", - "

Instructions

Combine the two if statements into one statement which returns \"Inside\" if val is between 10 and 20, inclusive. Otherwise, return \"Outside\"." + "

Instructions

", + "Combine the two if statements into one statement which returns \"Inside\" if val is between 10 and 20, inclusive. Otherwise, return \"Outside\"." ], "releasedOn": "11/27/2015", "tests": [ @@ -2775,7 +2836,8 @@ "description": [ "When a condition for an if statement is true, the block of code following it is executed. What about when that condition is false? Normally nothing would happen. With an else statement, an alternate block of code can be executed.", "
if (num > 10) {
return \"Bigger than 10\";
} else {
return \"10 or Less\";
}
", - "

Instructions

Combine the if statements into a single statement." + "

Instructions

", + "Combine the if statements into a single statement." ], "releasedOn": "11/27/2015", "tests": [ @@ -2887,7 +2949,8 @@ "description": [ "if...else if statements can be chained together for complex logic. Here is pseudocode of multiple chained if/else if statements:", "
if(condition1) {
statement1
} else if (condition1) {
statement1
} else if (condition3) {
statement3
. . .
} else {
statementN
}
", - "

Instructions

Write chained if/else if statements to fulfill the following conditions:", + "

Instructions

", + "Write chained if/else if statements to fulfill the following conditions:", "num < 5 - return \"Tiny\"
num < 10 - return \"Small\"
num < 15 - return \"Medium\"
num < 20 - return \"Large\"
num >= 20 - return \"Huge\"" ], "releasedOn": "11/27/2015", @@ -2948,7 +3011,8 @@ "If you have many options to choose from use a switch statement A switch statement tests a value and has many case statements which define that value can be, shown here in pseudocode:", "
switch (num) {
case value1:
statement1
break;
value2:
statement2;
break;
...
valueN:
statementN;
}
", "case values are tested with strict equality (===). The break tells Javascript to stop executing statements. If the break is omitted, the next statement will be executed.", - "

Instructions

Write a switch statement to set answer for the following conditions:
1 - \"alpha\"
2 - \"beta\"
3 - \"gamma\"
4 - \"delta\"" + "

Instructions

", + "Write a switch statement to set answer for the following conditions:
1 - \"alpha\"
2 - \"beta\"
3 - \"gamma\"
4 - \"delta\"" ], "releasedOn": "11/27/2015", "tests": [ @@ -3009,7 +3073,8 @@ "In a switch statement you may not be able to specify all possible values as case statements. Instead, you can use the default statement where a case would go. Think of it like an else statement for switch.", "A default statement should be the last \"case\" in the list.", "
switch (num) {
case value1:
statement1
break;
value2:
statement2;
break;
...
default:
defaultStatement;
}
", - "

Instructions

Write a switch statement to set answer for the following conditions:
\"a\" - \"apple\"
\"b\" - \"bird\"
\"c\" - \"cat\"
default - \"stuff\"" + "

Instructions

", + "Write a switch statement to set answer for the following conditions:
\"a\" - \"apple\"
\"b\" - \"bird\"
\"c\" - \"cat\"
default - \"stuff\"" ], "releasedOn": "11/27/2015", "tests": [ @@ -3071,7 +3136,8 @@ "If the break statement is ommitted from a switch statement case, the following case statement(s). If you have mutiple inputs with the same output, you can represent them in a switch statement like this:", "
switch(val) {
case 1:
case 2:
case 3:
result = \"1, 2, or 3\";
break;
case 4:
result = \"4 alone\";
}
", "Cases for 1, 2, and 3 will all produce the same result.", - "

Instructions

Write a switch statement to set answer for the following ranges:
1-3 - \"Low\"
4-6 - \"Mid\"
7-9 - \"High\"", + "

Instructions

", + "Write a switch statement to set answer for the following ranges:
1-3 - \"Low\"
4-6 - \"Mid\"
7-9 - \"High\"", "Note
You will need to have a case statement for each number in the range." ], "releasedOn": "11/27/2015", @@ -3143,7 +3209,8 @@ "
if(val === 1) {
answer = \"a\";
} else if(val === 2) {
answer = \"b\";
} else {
answer = \"c\";
}
", "can be replaced with:", "
switch (val) {
case 1:
answer = \"a\";
break;
case 2:
answer = \"b\";
break;
default:
answer = \"c\";
}
", - "

Instructions

Change the chained if/if else statements into a switch statement." + "

Instructions

", + "Change the chained if/if else statements into a switch statement." ], "releasedOn": "11/27/2015", "tests": [ @@ -3287,7 +3354,8 @@ "Here's a sample object:", "
var cat = {
\"name\": \"Whiskers\",
\"legs\": 4,
\"tails\": 1,
\"enemies\": [\"Water\", \"Dogs\"]
};
", "Objects are useful for storing data in a structured way, and can represent real world objects, like a cat.", - "

Instructions

Make an object that represents a dog called myDog which contains the properties \"name\" (a string), \"legs\", \"tails\" and \"friends\".", + "

Instructions

", + "Make an object that represents a dog called myDog which contains the properties \"name\" (a string), \"legs\", \"tails\" and \"friends\".", "You can set these object properties to whatever values you want, as long \"name\" is a string, \"legs\" and \"tails\" are numbers, and \"friends\" is an array." ], "tests": [ @@ -3331,7 +3399,8 @@ "The dot operator is what you use when you know the name of the property you're trying to access ahead of time.", "Here is a sample of using the . to read an object property:", "
var myObj = {
prop1: \"val1\",
prop2: \"val2\"
};
myObj.prop1; // val1
myObj.prop2; // val2
", - "

Instructions

Read the values of the properties hat and shirt of testObj using dot notation." + "

Instructions

", + "Read the values of the properties hat and shirt of testObj using dot notation." ], "releasedOn": "11/27/2015", "tests": [ @@ -3382,7 +3451,8 @@ "Here is a sample of using bracket notation to read an object property:", "
var myObj = {
\"Space Name\": \"Kirk\",
\"More Space\": \"Spock\"
};
myObj[\"Space Name\"]; // Kirk
myObj['More Space']; // Spock
", "Note that property names with spaces in them must be in quotes (single or double).", - "

Instructions

Read the values of the properties \"an entree\" and \"the drink\" of testObj using bracket notation." + "

Instructions

", + "Read the values of the properties \"an entree\" and \"the drink\" of testObj using bracket notation." ], "releasedOn": "11/27/2015", "tests": [ @@ -3433,7 +3503,8 @@ "Here is an example of using a variable to access a property:", "
var someProp = \"propName\";
var myObj = {
propName: \"Some Value\"
}
myObj[someProp]; // \"Some Value\"
", "Note that we do not use quotes around the variable name when using it to access the property because we are using the value of the variable, not the name", - "

Instructions

Use the playerNumber variable to lookup player 16 in testObj using bracket notation." + "

Instructions

", + "Use the playerNumber variable to lookup player 16 in testObj using bracket notation." ], "releasedOn": "11/27/2015", "tests": [ @@ -3480,7 +3551,8 @@ "ourDog.name = \"Happy Camper\"; or", "outDog[\"name\"] = \"Happy Camper\";", "Now when we evaluate ourDog.name, instead of getting \"Camper\", we'll get his new name, \"Happy Camper\".", - "

Instructions

Update the myDog object's name property. Let's change her name from \"Coder\" to \"Happy Coder\". You can use either dot or bracket notation." + "

Instructions

", + "Update the myDog object's name property. Let's change her name from \"Coder\" to \"Happy Coder\". You can use either dot or bracket notation." ], "tests": [ "assert(/happy coder/gi.test(myDog.name), 'message: Update myDog's \"name\" property to equal \"Happy Coder\".');", @@ -3525,7 +3597,8 @@ "or", "ourDog[\"bark\"] = \"bow-wow\";", "Now when we evaluate ourDog.bark, we'll get his bark, \"bow-wow\".", - "

Instructions

Add a \"bark\" property to myDog and set it to a dog sound, such as \"woof\". You may use either dot or bracket notation." + "

Instructions

", + "Add a \"bark\" property to myDog and set it to a dog sound, such as \"woof\". You may use either dot or bracket notation." ], "tests": [ "assert(myDog.bark !== undefined, 'message: Add the property \"bark\" to myDog.');", @@ -3574,7 +3647,8 @@ "description": [ "We can also delete properties from objects like this:", "delete ourDog.bark;", - "

Instructions

Delete the \"tails\" property from myDog. You may use either dot or bracket notation." + "

Instructions

", + "Delete the \"tails\" property from myDog. You may use either dot or bracket notation." ], "tests": [ "assert(myDog.tails === undefined, 'message: Delete the property \"tails\" from myDog.');", @@ -3629,7 +3703,8 @@ "Objects can be thought of as a key/value storage, like a dictonary. If you have tabular data, you can use an object to \"lookup\" values rather than a switch statement or an if...else chain. This is most useful when you know that your input data is limited to a certain range.", "Here is an example of a simple reverse alphabet lookup:", "
var alpha = {
1:\"Z\"
2:\"Y\"
3:\"X\"
...
4:\"W\"
24:\"C\"
25:\"B\"
26:\"A\"
};
alpha[2]; // \"Y\"
alpha[24]; // \"C\"
", - "

Instructions

Convert the switch statement into a lookup table called lookup. Use it to lookup val and return the associated string." + "

Instructions

", + "Convert the switch statement into a lookup table called lookup. Use it to lookup val and return the associated string." ], "releasedOn": "11/27/2015", "tests": [ @@ -3727,7 +3802,8 @@ "Here is an example of a JSON object:", "
var ourMusic = [
{
\"artist\": \"Daft Punk\",
\"title\": \"Homework\",
\"release_year\": 1997,
\"formats\": [
\"CD\",
\"Cassette\",
\"LP\" ],
\"gold\": true
}
];
", "This is an array of objects and the object has various peices of metadata about an album. It also has a nested array of formats. Additional album records could be added to the top level array.", - "

Instructions

Add a new album to the myMusic JSON object. Add artist and title strings, release_year year, and a formats array of strings." + "

Instructions

", + "Add a new album to the myMusic JSON object. Add artist and title strings, release_year year, and a formats array of strings." ], "releasedOn": "11/27/2015", "tests": [ @@ -3802,7 +3878,8 @@ "The properties and sub-properties of JSON objects can be accessed by chaining together the dot or bracket notation.", "Here is a nested JSON Object:", "
var ourStorage = {
\"desk\": {
\"drawer\": \"stapler\"
},
\"cabinet\": {
\"top drawer\": {
\"folder1\": \"a file\",
\"folder2\": \"secrets\"
},
\"bottom drawer\": \"soda\"
}
}
ourStorage.cabinet[\"top drawer\"].folder2; // \"secrets\"
ourStoage.desk.drawer; // \"stapler\"
", - "

Instructions

Access the myStorage JSON object to retrieve the contents of the glove box. Only use object notation for properties with a space in their name." + "

Instructions

", + "Access the myStorage JSON object to retrieve the contents of the glove box. Only use object notation for properties with a space in their name." ], "releasedOn": "11/27/2015", "tests": [ @@ -3860,7 +3937,8 @@ "As we have seen in earlier examples, JSON objects can contain both nested objects and nested arrays. Similar to accessing nested objects, Array bracket notation can be chained to access nested arrays.", "Here is an example of how to access a nested array:", "
var ourPets = {
\"cats\": [
\"Meowzer\",
\"Fluffy\",
\"Kit-Cat\"
],
\"dogs:\" [
\"Spot\",
\"Bowser\",
\"Frankie\"
]
};
ourPets.cats[1]; // \"Fluffy\"
ourPets.dogs[0]; // \"Spot\"
", - "

Instructions

Retrieve the second tree using object dot and array bracket notation." + "

Instructions

", + "Retrieve the second tree using object dot and array bracket notation." ], "releasedOn": "11/27/2015", "tests": [ @@ -3976,7 +4054,8 @@ "In the following example we initialize with i = 0 and iterate while our condition i < 5 is true. We'll increment i by 1 in each loop iteration with i++ as our final-expression.", "
var ourArray = [];
for (var i = 0; i < 5; i++) {
ourArray.push(i);
}
", "ourArray will now contain [0,1,2,3,4].", - "

Instructions

Use a for loop to work to push the values 1 through 5 onto myArray." + "

Instructions

", + "Use a for loop to work to push the values 1 through 5 onto myArray." ], "tests": [ "assert(editor.getValue().match(/for\\s*\\(/g).length > 1, 'message: You should be using a for loop for this.');", @@ -4012,7 +4091,8 @@ "
var ourArray = [];
for (var i = 0; i < 10; i += 2) {
ourArray.push(i);
}
", "ourArray will now contain [0,2,4,6,8].", "Let's change our initialization so we can count by odd numbers.", - "

Instructions

Push the odd numbers from 1 through 9 to myArray using a for loop." + "

Instructions

", +"Push the odd numbers from 1 through 9 to myArray using a for loop." ], "tests": [ "assert(editor.getValue().match(/for\\s*\\(/g).length > 1, 'message: You should be using a for loop for this.');", @@ -4049,7 +4129,8 @@ "
var ourArray = [];
for (var i=10; i > 0; i-=2) {
ourArray.push(i);
}
", "ourArray will now contain [10,8,6,4,2].", "Let's change our initialization and final-expression so we can count backward by twos by odd numbers.", - "

Instructions

Push the odd numbers from 9 through 1 to myArray using a for loop." + "

Instructions

", +"Push the odd numbers from 9 through 1 to myArray using a for loop." ], "tests": [ "assert(editor.getValue().match(/for\\s*\\(/g).length > 1, 'message: You should be using a for loop for this.');", @@ -4082,7 +4163,8 @@ "A common task in Javascript is to iterate through the contents of an array. One way to do that is with a for loop. This code will output each element of the array arr to the console:", "
var arr = [10,9,8,7,6];
for (var i=0; i < arr.length; i++) {
console.log(arr[i]);
}
", "Remember that Arrays have zero-based numbering, which means the last index of the array is length - 1. Our condition for this loop is i < arr.length, which stops when i is at length - 1.", - "

Instructions

Create a variable total. Use a for loop to add each element of myArr to total." + "

Instructions

", + "Create a variable total. Use a for loop to add each element of myArr to total." ], "releasedOn": "11/27/2015", "tests": [ @@ -4132,7 +4214,8 @@ "If you have a multi-dimensional array, you can use the same logic as the prior waypoint to loop through both the array and any sub-arrays. Here is an example:", "
var arr = [
[1,2], [3,4], [5,6]
];
for (var i=0; i < arr.length; i++) {
for (var j=0; k < arr[i].length; j++) {
console.log(arr[i][j]);
}
}
", "This outputs each sub-element in arr one at a time. Note that for the inner loop we are checking the .length of arr[i], since arr[i] is itself an array.", - "

Instructions

The function multiplyAll will be passed a multi-dimensional array, arr. Loop through both levels of arr and multiply product by each one." + "

Instructions

", + "Modify function multiplyAll so that it multiplies product by each number in the subarrays of arr" ], "releasedOn": "11/27/2015", "tests": [ @@ -4187,7 +4270,8 @@ "Another type of JavaScript loop is called a \"while loop\", because it runs \"while\" something is true and stops once that something is no longer true.", "
var ourArray = [];
var i = 0;
while(i < 5) {
ourArray.push(i);
i++;
}
", "Let's try getting a while loop to work by pushing values to an array.", - "

Instructions

Push the numbers 0 through 4 to myArray using a while loop." + "

Instructions

", + "Push the numbers 0 through 4 to myArray using a while loop." ], "tests": [ "assert(editor.getValue().match(/while/g), 'message: You should be using a while loop for this.');", @@ -5131,4 +5215,4 @@ "challengeType": "0" } ] -} \ No newline at end of file +}