diff --git a/challenges/basic-javascript.json b/challenges/basic-javascript.json
index 3465c9dcb1..e3e7d573c2 100644
--- a/challenges/basic-javascript.json
+++ b/challenges/basic-javascript.json
@@ -66,7 +66,7 @@
"Look at the ourName
example if you get stuck."
],
"tests": [
- "assert((function(){/**/if(typeof(myName) !== \"undefined\" && typeof(myName) === \"string\" && myName.length > 0){return(true);}else{return(false);}/**/})(), 'myName should be a string that contains at least one character in it');"
+ "assert((function(){/**/if(typeof(myName) !== \"undefined\" && typeof(myName) === \"string\" && myName.length > 0){return true;}else{return false;}/**/})(), 'myName should be a string that contains at least one character in it');"
],
"challengeSeed": [
"// var ourName = \"Free Code Camp\";",
@@ -76,7 +76,7 @@
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
"",
- "if(typeof(myName) !== \"undefined\"){(function(v){return(v);})(myName);}"
+ "if(typeof(myName) !== \"undefined\"){(function(v){return v;})(myName);}"
],
"type": "waypoint",
"challengeType": 1
@@ -90,8 +90,8 @@
"Now let's 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);}})(), 'myFirstName should be a string with a least one character in it');",
- "assert((function(){if(typeof(myLastName) !== \"undefined\" && typeof(myLastName) === \"string\" && myLastName.length > 0){return(true);}else{return(false);}})(), 'myLastName should be a string with a least one character in it');"
+ "assert((function(){if(typeof(myFirstName) !== \"undefined\" && typeof(myFirstName) === \"string\" && myFirstName.length > 0){return true;}else{return false;}})(), 'myFirstName should be a string with a least one character in it');",
+ "assert((function(){if(typeof(myLastName) !== \"undefined\" && typeof(myLastName) === \"string\" && myLastName.length > 0){return true;}else{return false;}})(), 'myLastName should be a string with a least one character in it');"
],
"challengeSeed": [
"// name = \"Alan Turing\";",
@@ -102,7 +102,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "if(typeof(myFirstName) !== \"undefined\" && typeof(myLastName) !== \"undefined\"){(function(){return(myFirstName + ', ' + myLastName);})();}"
+ "if(typeof(myFirstName) !== \"undefined\" && typeof(myLastName) !== \"undefined\"){(function(){return myFirstName + ', ' + myLastName;})();}"
],
"type": "waypoint",
"challengeType": 1
@@ -117,8 +117,8 @@
"Use the .length
property to count the number of characters in the lastName
variable."
],
"tests": [
- "assert((function(){if(typeof(lastNameLength) !== \"undefined\" && typeof(lastNameLength) === \"number\" && lastNameLength === 8){return(true);}else{return(false);}})(), 'lastNameLength should be equal to eight.');",
- "assert((function(){if(editor.getValue().match(/\\.length/gi) && editor.getValue().match(/\\.length/gi).length >= 2 && editor.getValue().match(/var lastNameLength \\= 0;/gi) && editor.getValue().match(/var lastNameLength \\= 0;/gi).length >= 1){return(true);}else{return(false);}})(), 'You should be getting the length of lastName
by using .length
like this: lastName.length
');"
+ "assert((function(){if(typeof(lastNameLength) !== \"undefined\" && typeof(lastNameLength) === \"number\" && lastNameLength === 8){return true;}else{return false;}})(), 'lastNameLength should be equal to eight.');",
+ "assert((function(){if(editor.getValue().match(/\\.length/gi) && editor.getValue().match(/\\.length/gi).length >= 2 && editor.getValue().match(/var lastNameLength \\= 0;/gi) && editor.getValue().match(/var lastNameLength \\= 0;/gi).length >= 1){return true;}else{return false;}})(), 'You should be getting the length of lastName
by using .length
like this: lastName.length
');"
],
"challengeSeed": [
"var firstNameLength = 0;",
@@ -138,7 +138,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "if(typeof(lastNameLength) !== \"undefined\"){(function(){return(lastNameLength);})();}"
+ "if(typeof(lastNameLength) !== \"undefined\"){(function(){return lastNameLength;})();}"
],
"type": "waypoint",
"challengeType": 1
@@ -155,7 +155,7 @@
"Try looking at the firstLetterOfFirstName
variable declaration if you get stuck."
],
"tests": [
- "assert((function(){if(typeof(firstLetterOfLastName) !== \"undefined\" && editor.getValue().match(/\\[0\\]/gi) && typeof(firstLetterOfLastName) === \"string\" && firstLetterOfLastName === \"L\"){return(true);}else{return(false);}})(), 'The first letter of firstLetterOfLastName should be a L');"
+ "assert((function(){if(typeof(firstLetterOfLastName) !== \"undefined\" && editor.getValue().match(/\\[0\\]/gi) && typeof(firstLetterOfLastName) === \"string\" && firstLetterOfLastName === \"L\"){return true;}else{return false;}})(), 'The first letter of firstLetterOfLastName should be a L');"
],
"challengeSeed": [
"var firstLetterOfFirstName = \"\";",
@@ -173,7 +173,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(v){return(v);})(firstLetterOfLastName);"
+ "(function(v){return v;})(firstLetterOfLastName);"
],
"type": "waypoint",
"challengeType": 1
@@ -204,7 +204,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(v){return(v);})(thirdLetterOfLastName);"
+ "(function(v){return v;})(thirdLetterOfLastName);"
],
"type": "waypoint",
"challengeType": 1
@@ -236,7 +236,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(v){return(v);})(lastLetterOfLastName);"
+ "(function(v){return v;})(lastLetterOfLastName);"
],
"type": "waypoint",
"challengeType": 1
@@ -268,7 +268,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(v){return(v);})(secondToLastLetterOfLastName);"
+ "(function(v){return v;})(secondToLastLetterOfLastName);"
],
"type": "waypoint",
"challengeType": 1
@@ -283,7 +283,7 @@
"Replace the 0
with the correct number so you can get the result mentioned in the comment."
],
"tests": [
- "assert((function(){if(sum === 20 && editor.getValue().match(/\\+/g)){return(true);}else{return(false);}})(), 'Make the variable sum
equal 20');"
+ "assert((function(){if(sum === 20 && editor.getValue().match(/\\+/g)){return true;}else{return false;}})(), 'Make the variable sum
equal 20');"
],
"challengeSeed": [
"var sum = 10 + 0; //make this equal to 20 by changing the 0 into the appropriate number.",
@@ -291,7 +291,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(z){return('sum='+z);})(sum);"
+ "(function(z){return 'sum='+z;})(sum);"
],
"type": "waypoint",
"challengeType": 1
@@ -306,7 +306,7 @@
"Replace the 0
with the correct number so you can get the result mentioned in the comment."
],
"tests": [
- "assert((function(){if(difference === 12 && editor.getValue().match(/\\-/g)){return(true);}else{return(false);}})(), 'Make the variable difference
equal 12');"
+ "assert((function(){if(difference === 12 && editor.getValue().match(/\\-/g)){return true;}else{return false;}})(), 'Make the variable difference
equal 12');"
],
"challengeSeed": [
"var difference = 45 - 0; //make this equal to 12 by changing the 0 into the appropriate number.",
@@ -314,7 +314,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(z){return('difference='+z);})(difference);"
+ "(function(z){return 'difference='+z;})(difference);"
],
"type": "waypoint",
"challengeType": 1
@@ -329,7 +329,7 @@
"Replace the 0
with the correct number so you can get the result mentioned in the comment."
],
"tests": [
- "assert((function(){if(product === 80 && editor.getValue().match(/\\*/g)){return(true);}else{return(false);}})(), 'Make the variable product
equal 80.');"
+ "assert((function(){if(product === 80 && editor.getValue().match(/\\*/g)){return true;}else{return false;}})(), 'Make the variable product
equal 80.');"
],
"challengeSeed": [
"var product = 8 * 0; //make this equal to 80 by changing the 0 into the appropriate number.",
@@ -337,7 +337,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(z){return('product='+z);})(product);"
+ "(function(z){return 'product='+z;})(product);"
],
"type": "waypoint",
"challengeType": 1
@@ -352,7 +352,7 @@
"Replace the 0
with the correct number so you can get the result mentioned in the comment."
],
"tests": [
- "assert((function(){if(quotient === 2 && editor.getValue().match(/\\//g)){return(true);}else{return(false);}})(), 'Make the variable quotient
equal 2.');"
+ "assert((function(){if(quotient === 2 && editor.getValue().match(/\\//g)){return true;}else{return false;}})(), 'Make the variable quotient
equal 2.');"
],
"challengeSeed": [
"var quotient = 66 / 0; //make this equal to 2 by changing the 0 into the appropriate number.",
@@ -360,7 +360,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(z){return('quotient='+z);})(quotient);"
+ "(function(z){return 'quotient='+z;})(quotient);"
],
"type": "waypoint",
"challengeType": 1
@@ -374,7 +374,7 @@
"Let's create a variable myDecimal
and give it a decimal value."
],
"tests": [
- "assert((function(){if(typeof(myDecimal) !== \"undefined\" && typeof(myDecimal) === \"number\" && editor.getValue().match(/\\./g).length >=2){return(true);}else{return(false);}})(), 'myDecimal should be a decimal point number.');"
+ "assert((function(){if(typeof(myDecimal) !== \"undefined\" && typeof(myDecimal) === \"number\" && editor.getValue().match(/\\./g).length >=2){return true;}else{return false;}})(), 'myDecimal should be a decimal point number.');"
],
"challengeSeed": [
"// var ourDecimal = 5.7;",
@@ -385,7 +385,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(){if(typeof(myDecimal) !== \"undefined\"){return(myDecimal);}})();"
+ "(function(){if(typeof(myDecimal) !== \"undefined\"){return myDecimal;}})();"
],
"type": "waypoint",
"challengeType": 1
@@ -399,8 +399,8 @@
"Replace the 0.0
with the correct number so that you get the result mentioned in the comments."
],
"tests": [
- "assert((function(){if(product === 5.0 && editor.getValue().match(/\\*/g)){return(true);}else{return(false);}})(), 'Make the variable product
equal 5.0.');",
- "assert((function(){if(quotient === 2.2 && editor.getValue().match(/\\//g)){return(true);}else{return(false);}})(), 'Make the variable quotient
equal 2.2.');"
+ "assert((function(){if(product === 5.0 && editor.getValue().match(/\\*/g)){return true;}else{return false;}})(), 'Make the variable product
equal 5.0.');",
+ "assert((function(){if(quotient === 2.2 && editor.getValue().match(/\\//g)){return true;}else{return false;}})(), 'Make the variable quotient
equal 2.2.');"
],
"challengeSeed": [
"var quotient = 4.4 / 2.0; // equals 2.2",
@@ -410,7 +410,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(y){return('product='+y);})(product);"
+ "(function(y){return 'product='+y;})(product);"
],
"type": "waypoint",
"challengeType": 1
@@ -440,7 +440,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(z){return(z);})(myArray);"
+ "(function(z){return z;})(myArray);"
],
"type": "waypoint",
"challengeType": 1
@@ -465,7 +465,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "if(typeof(myArray) !== \"undefined\"){(function(){return(myArray);})();}"
+ "if(typeof(myArray) !== \"undefined\"){(function(){return myArray;})();}"
],
"type": "waypoint",
"challengeType": 1
@@ -484,7 +484,7 @@
"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);}})(), 'The variable myData
should equal the first value of myArray');"
+ "assert((function(){if(typeof(myArray) != 'undefined' && typeof(myData) != 'undefined' && myArray[0] == myData){return true;}else{return false;}})(), 'The variable myData
should equal the first value of myArray');"
],
"challengeSeed":[
"//var ourArray = [1,2,3];",
@@ -497,7 +497,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "if(typeof(myArray) !== \"undefined\" && typeof(myData) !== \"undefined\"){(function(y,z){return('myArray = ' + JSON.stringify(y) + ', myData = ' + JSON.stringify(z));})(myArray, myData);}"
+ "if(typeof(myArray) !== \"undefined\" && typeof(myData) !== \"undefined\"){(function(y,z){return 'myArray = ' + JSON.stringify(y) + ', myData = ' + JSON.stringify(z);})(myArray, myData);}"
],
"type": "waypoint",
"challengeType": 1
@@ -514,8 +514,8 @@
"Now modify the data stored at index 0 of myArray
to the value of 3."
],
"tests":[
- "assert((function(){if(typeof(myArray) != 'undefined' && myArray[0] == 3 && myArray[1] == 2 && myArray[2] == 3){return(true);}else{return(false);}})(), 'myArray should now be [3,2,3]');",
- "assert((function(){if(editor.getValue().match(/[0]/g).length >= 1 && editor.getValue().match(/=/g).length >= 2){return(true);}else{return(false);}})(), 'You should be using indexes to modify the values in myArray');"
+ "assert((function(){if(typeof(myArray) != 'undefined' && myArray[0] == 3 && myArray[1] == 2 && myArray[2] == 3){return true;}else{return false;}})(), 'myArray should now be [3,2,3]');",
+ "assert((function(){if(editor.getValue().match(/[0]/g).length >= 1 && editor.getValue().match(/=/g).length >= 2){return true;}else{return false;}})(), 'You should be using indexes to modify the values in myArray');"
],
"challengeSeed":[
"var ourArray = [1,2,3];",
@@ -528,7 +528,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "if(typeof(myArray) !== \"undefined\"){(function(){return(myArray);})();}"
+ "if(typeof(myArray) !== \"undefined\"){(function(){return myArray;})();}"
],
"type": "waypoint",
"challengeType": 1
@@ -544,8 +544,8 @@
"Use the .pop()
function to remove the last item from myArray."
],
"tests": [
- "assert((function(d){if(d[0] == 'John' && d[1] == 23 && d[2] == undefined){return(true);}else{return(false);}})(myArray), 'myArray should only have the first two values left([\"John\", 23])');",
- "assert((function(d){if(d[0] == 'cat' && d[1] == 2 && d[2] == undefined){return(true);}else{return(false);}})(removed), 'myArray should only have the first two values left([\"cat\"], 2)');"
+ "assert((function(d){if(d[0] == 'John' && d[1] == 23 && d[2] == undefined){return true;}else{return false;}})(myArray), 'myArray should only have the first two values left([\"John\", 23])');",
+ "assert((function(d){if(d[0] == 'cat' && d[1] == 2 && d[2] == undefined){return true;}else{return false;}})(removed), 'myArray should only have the first two values left([\"cat\"], 2)');"
],
"challengeSeed": [
"//var numbers = [1,2,3];",
@@ -562,7 +562,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(y, z){return('myArray = ' + JSON.stringify(y) + ' & removed = ' + JSON.stringify(z));})(myArray, removed);"
+ "(function(y, z){return 'myArray = ' + JSON.stringify(y) + ' & removed = ' + JSON.stringify(z);})(myArray, removed);"
],
"type": "waypoint",
"challengeType": 1
@@ -576,7 +576,7 @@
"Take the myArray array and push()
this value to the end of it: [\"dog\", 3]
."
],
"tests": [
- "assert((function(d){if(d[2] != undefined && d[0] == 'John' && d[1] == 23 && d[2][0] == 'dog' && d[2][1] == 3 && d[2].length == 2){return(true);}else{return(false);}})(myArray), 'myArray should only have the first two values left([\"John\", 23, [\"dog\", 3]])');"
+ "assert((function(d){if(d[2] != undefined && d[0] == 'John' && d[1] == 23 && d[2][0] == 'dog' && d[2][1] == 3 && d[2].length == 2){return true;}else{return false;}})(myArray), 'myArray should only have the first two values left([\"John\", 23, [\"dog\", 3]])');"
],
"challengeSeed": [
"var ourArray = [\"Stimpson\", \"J\", [\"cat\"]];",
@@ -593,7 +593,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(z){return('myArray = ' + JSON.stringify(z));})(myArray);"
+ "(function(z){return 'myArray = ' + JSON.stringify(z);})(myArray);"
],
"type": "waypoint",
"challengeType": 1
@@ -607,8 +607,8 @@
"Take the myArray array and shift()
the first value off of it."
],
"tests": [
- "assert((function(d){if(d[0] == 23 && d[1][0] == 'dog' && d[1][1] == 3 && d[2] == undefined){return(true);}else{return(false);}})(myArray), 'myArray should only have the last two values left([23, [\"dog\", 3]])');",
- "assert((function(d){if(d === 'John' && typeof(myRemoved) === 'string'){return(true);}else{return(false);}})(myRemoved), 'myRemoved should contain \"John\"');"
+ "assert((function(d){if(d[0] == 23 && d[1][0] == 'dog' && d[1][1] == 3 && d[2] == undefined){return true;}else{return false;}})(myArray), 'myArray should only have the last two values left([23, [\"dog\", 3]])');",
+ "assert((function(d){if(d === 'John' && typeof(myRemoved) === 'string'){return true;}else{return false;}})(myRemoved), 'myRemoved should contain \"John\"');"
],
"challengeSeed": [
"var ourArray = [\"Stimpson\", \"J\", [\"cat\"]];",
@@ -624,7 +624,7 @@
"",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(y, z){return('myArray = ' + JSON.stringify(y) + ' & myRemoved = ' + JSON.stringify(z));})(myArray, myRemoved);"
+ "(function(y, z){return 'myArray = ' + JSON.stringify(y) + ' & myRemoved = ' + JSON.stringify(z);})(myArray, myRemoved);"
],
"type": "waypoint",
"challengeType": 1
@@ -638,7 +638,7 @@
"Let's take the code we had last time and unshift
this value to the start: \"Paul\"
"
],
"tests": [
- "assert((function(d){if(d[0].toLowerCase() == 'paul' && d[1] == 23 && d[2][0] != undefined && d[2][0] == 'dog' && d[2][1] != undefined && d[2][1] == 3){return(true);}else{return(false);}})(myArray), 'myArray should now have [\"Paul\", 23, [\"dog\", 3]])');"
+ "assert((function(d){if(d[0].toLowerCase() == 'paul' && d[1] == 23 && d[2][0] != undefined && d[2][0] == 'dog' && d[2][1] != undefined && d[2][1] == 3){return true;}else{return false;}})(myArray), 'myArray should now have [\"Paul\", 23, [\"dog\", 3]])');"
],
"challengeSeed": [
"var ourArray = [\"Stimpson\", \"J\", [\"cat\"]];",
@@ -656,7 +656,7 @@
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
"// You'll learn about functions soon.",
- "(function(y, z){return('myArray = ' + JSON.stringify(y));})(myArray);"
+ "(function(y, z){return 'myArray = ' + JSON.stringify(y);})(myArray);"
],
"type": "waypoint",
"challengeType": 1
@@ -669,13 +669,13 @@
"In JavaScript, we can divide up our code into reusable parts called functions
.",
"Here's an example of a function:",
"function functionName (a, b) {
",
- " return(a + b);
",
+ " return a + b;
",
"}
",
"We can \"call\" our function like this: functionName();
, and it will run and return its return
value to us.",
"Create and call a function called myFunction
that returns the sum of a and b."
],
"tests":[
- "assert((function(){if(typeof(f) !== \"undefined\" && typeof(f) === \"number\" && f === a + b && editor.getValue().match(/return/gi).length >= 1 && editor.getValue().match(/a/gi).length >= 1 && editor.getValue().match(/b/gi).length >= 1 && editor.getValue().match(/\\+/gi).length >= 1){return(true);}else{return(false);}})(), 'Your function should return the value of a + b');"
+ "assert((function(){if(typeof(f) !== \"undefined\" && typeof(f) === \"number\" && f === a + b && editor.getValue().match(/return/gi).length >= 1 && editor.getValue().match(/a/gi).length >= 1 && editor.getValue().match(/b/gi).length >= 1 && editor.getValue().match(/\\+/gi).length >= 1){return true;}else{return false;}})(), 'Your function should return the value of a + b');"
],
"challengeSeed":[
"var a = 4;",
@@ -697,7 +697,7 @@
"// You'll learn about functions soon.",
"if(typeof(myFunction) !== \"undefined\"){",
"var f=myFunction(a,b);",
- "(function(){return(f);})();",
+ "(function(){return f;})();",
"}"
],
"type": "waypoint",
@@ -722,10 +722,10 @@
"Let's try to make an Object that represents a dog called myDog which contains the properties 'name' (String), 'legs' (Number), 'tails' (Number) and 'friends' (Array)!"
],
"tests":[
- "assert((function(z){if(z.hasOwnProperty(\"name\") && z.name !== undefined && typeof(z.name) === \"string\"){return(true);}else{return(false);}})(myDog), 'myDog should contain the property name and it should be a string');",
- "assert((function(z){if(z.hasOwnProperty(\"legs\") && z.legs !== undefined && typeof(z.legs) === \"number\"){return(true);}else{return(false);}})(myDog), 'myDog should contain the property legs and it should be a number');",
- "assert((function(z){if(z.hasOwnProperty(\"tails\") && z.tails !== undefined && typeof(z.tails) === \"number\"){return(true);}else{return(false);}})(myDog), 'myDog should contain the property tails and it should be a number');",
- "assert((function(z){if(z.hasOwnProperty(\"friends\") && z.friends !== undefined && Array.isArray(z.friends)){return(true);}else{return(false);}})(myDog), 'myDog should contain the property friends and it should be an array');"
+ "assert((function(z){if(z.hasOwnProperty(\"name\") && z.name !== undefined && typeof(z.name) === \"string\"){return true;}else{return false;}})(myDog), 'myDog should contain the property name and it should be a string');",
+ "assert((function(z){if(z.hasOwnProperty(\"legs\") && z.legs !== undefined && typeof(z.legs) === \"number\"){return true;}else{return false;}})(myDog), 'myDog should contain the property legs and it should be a number');",
+ "assert((function(z){if(z.hasOwnProperty(\"tails\") && z.tails !== undefined && typeof(z.tails) === \"number\"){return true;}else{return false;}})(myDog), 'myDog should contain the property tails and it should be a number');",
+ "assert((function(z){if(z.hasOwnProperty(\"friends\") && z.friends !== undefined && Array.isArray(z.friends)){return true;}else{return false;}})(myDog), 'myDog should contain the property friends and it should be an array');"
],
"challengeSeed":[
"//var ourDog = {",
@@ -746,7 +746,7 @@
"",
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
- "(function(z){return(z);})(myDog);"
+ "(function(z){return z;})(myDog);"
],
"type": "waypoint",
"challengeType": 1
@@ -795,7 +795,7 @@
"",
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
- "(function(z){return(z);})(myDog);"
+ "(function(z){return z;})(myDog);"
],
"type": "waypoint",
"challengeType": 1
@@ -878,13 +878,13 @@
" //Change the 0 to Math.random()",
" // Only change code below this line.",
"",
- " return(0);",
+ " return 0;",
"",
"// Only change code above this line.",
"}",
"",
"// We use this function to show you the value of your variable in your output box.",
- "(function(){return(myFunction());})();"
+ "(function(){return myFunction();})();"
],
"type": "waypoint",
"challengeType": 1
@@ -913,13 +913,13 @@
"",
" // Only change code below this line.",
"",
- " return(Math.random());",
+ " return Math.random();",
"",
" // Only change code above this line.",
"}",
"",
"// We use this function to show you the value of your variable in your output box.",
- "(function(){return(myFunction());})();"
+ "(function(){return myFunction();})();"
],
"type": "waypoint",
"challengeType": 1
@@ -936,7 +936,7 @@
"tests":[
"assert(myFunction() >= min, 'The random number that\\'s generated by myFunction should be greater than or equal to the minimum number');",
"assert(myFunction() <= max, 'The random number that\\'s generated by myFunction should be less than or equal to the maximum number');",
- "assert((function(){if(editor.getValue().match(/max/g).length >= 2 && editor.getValue().match(/min/g).length >= 2 && editor.getValue().match(/Math.floor/g) && editor.getValue().match(/Math.random/g)){return(true);}else{return(false);}})(), 'You should be using the function given in the description to calculate the random in number in a range');"
+ "assert((function(){if(editor.getValue().match(/max/g).length >= 2 && editor.getValue().match(/min/g).length >= 2 && editor.getValue().match(/Math.floor/g) && editor.getValue().match(/Math.random/g)){return true;}else{return false;}})(), 'You should be using the function given in the description to calculate the random in number in a range');"
],
"challengeSeed":[
"var min = 0;",
@@ -945,12 +945,12 @@
" // Make myFunction return a random number between zero and nine instead of a decimal",
" // Only change code below this line.",
"",
- " return(Math.random());",
+ " return Math.random();",
"}",
"",
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
- "(function(){return(myFunction());})();"
+ "(function(){return myFunction();})();"
],
"type": "waypoint",
"challengeType": 1
@@ -964,16 +964,16 @@
"if statements require some sort of boolean condition to evaluate.",
"Example:",
" if (1 === 2) {
",
- " return(true);
",
+ " return true;
",
"}
",
"else {
",
- " return(false);
",
+ " return false;
",
"}
",
"Let's use if
and else
statements to make a coin-flip game.",
"Create an if-else statement
to return heads
if the flip var is zero, or else return tails
if it's not."
],
"tests":[
- "assert((function(){if(myFunction() === \"heads\" || myFunction() === \"tails\"){return(true);}else{return(false);}})(), 'myFunction should either return heads or tails');",
+ "assert((function(){if(myFunction() === \"heads\" || myFunction() === \"tails\"){return true;}else{return false;}})(), 'myFunction should either return heads or tails');",
"assert(editor.getValue().match(/if/g).length >= 3, 'You should have created a new if statement');",
"assert(editor.getValue().match(/else/g).length >= 2, 'You should have created a new else statement');"
],
@@ -989,7 +989,7 @@
"",
"// Only change code above this line.",
"// We use this function to show you the value of your variable in your output box.",
- "(function(){return(myFunction());})();"
+ "(function(){return myFunction();})();"
],
"type": "waypoint",
"challengeType": 1
@@ -1023,8 +1023,8 @@
"",
" // Only change code above this line.",
" // We use this function to show you the value of your variable in your output box.",
- " return(testString.match(expression).length);",
- "})();(function(){return(test);})();"
+ " return testString.match(expression).length;",
+ "})();(function(){return test;})();"
],
"type": "waypoint",
"challengeType": 1
@@ -1053,8 +1053,8 @@
"",
" // Only change code above this line.",
" // We use this function to show you the value of your variable in your output box.",
- " return(testString.match(expression).length);",
- "})();(function(){return(test);})();"
+ " return testString.match(expression).length;",
+ "})();(function(){return test;})();"
],
"type": "waypoint",
"challengeType": 1
@@ -1083,8 +1083,8 @@
"",
" // Only change code above this line.",
" // We use this function to show you the value of your variable in your output box.",
- " return(testString.match(expression).length);",
- "})();(function(){return(test);})();"
+ " return testString.match(expression).length;",
+ "})();(function(){return test;})();"
],
"type": "waypoint",
"challengeType": 1
@@ -1111,8 +1111,8 @@
"",
" // Only change code above this line.",
" // We use this function to show you the value of your variable in your output box.",
- " return(testString.match(expression).length);",
- "})();(function(){return(test);})();"
+ " return testString.match(expression).length;",
+ "})();(function(){return test;})();"
],
"type": "waypoint",
"challengeType":1
@@ -1132,7 +1132,7 @@
"assert(typeof(runSlots($(\".slot\"))[0]) === \"number\", 'slotOne
should be a random number.')",
"assert(typeof(runSlots($(\".slot\"))[1]) === \"number\", 'slotTwo
should be a random number.')",
"assert(typeof(runSlots($(\".slot\"))[2]) === \"number\", 'slotThree
should be a random number.')",
- "assert((function(){if(editor.match(/Math\\.floor\\(\\s?Math\\.random\\(\\)\\s?\\*\\s?\\(\\s?3\\s?\\-\\s?1\\s?\\+\\s?1\\s?\\)\\s?\\)\\s?\\+\\s?1;/gi) !== null){return(editor.match(/Math\\.floor\\(\\s?Math\\.random\\(\\)\\s?\\*\\s?\\(\\s?3\\s?\\-\\s?1\\s?\\+\\s?1\\s?\\)\\s?\\)\\s?\\+\\s?1;/gi).length >= 3);}else{return(false);}})(), 'You should have used Math.floor(Math.random() * (3 - 1 + 1)) + 1;
three times to generate your random numbers.')"
+ "assert((function(){if(editor.match(/Math\\.floor\\(\\s?Math\\.random\\(\\)\\s?\\*\\s?\\(\\s?3\\s?\\-\\s?1\\s?\\+\\s?1\\s?\\)\\s?\\)\\s?\\+\\s?1;/gi) !== null){return editor.match(/Math\\.floor\\(\\s?Math\\.random\\(\\)\\s?\\*\\s?\\(\\s?3\\s?\\-\\s?1\\s?\\+\\s?1\\s?\\)\\s?\\)\\s?\\+\\s?1;/gi).length >= 3;}else{return false;}})(), 'You should have used Math.floor(Math.random() * (3 - 1 + 1)) + 1;
three times to generate your random numbers.')"
],
"challengeSeed":[
"fccss",
@@ -1155,7 +1155,7 @@
" if(slotOne !== undefined && slotTwo !== undefined && slotThree !== undefined){",
" $(\".logger\").html(slotOne + \" \" + slotTwo + \" \" + slotThree);",
" }",
- " return([slotOne, slotTwo, slotThree]);",
+ " return [slotOne, slotTwo, slotThree];",
" }",
"",
" $(document).ready(function(){",
@@ -1282,11 +1282,11 @@
"If all three numbers match, we should return the number that we have in three of slots or leave it as null
.",
"Let's create an if statement
with multiple conditions in order to check whether all numbers are equal.",
"if(slotOne !== slotTwo || slotTwo !== slotThree){
",
- " return(null);
",
+ " return null;
",
"}
"
],
"tests":[
- "assert((function(){var data = runSlots();if(data === null){return(true)}else{if(data[0] === data[1] && data[1] === data[2]){return(true);}else{return(false);}}})(), 'If all three of our random numbers are the same we should return that number. Otherwise we should return null.')"
+ "assert((function(){var data = runSlots();if(data === null){return true}else{if(data[0] === data[1] && data[1] === data[2]){return true;}else{return false;}}})(), 'If all three of our random numbers are the same we should return that number. Otherwise we should return null.')"
],
"challengeSeed":[
"fccss",
@@ -1315,7 +1315,7 @@
" $(\".logger\").append(\" \" + slotTwo);",
" $(\".logger\").append(\" \" + slotThree);",
" }",
- " return([slotOne, slotTwo, slotThree]);",
+ " return [slotOne, slotTwo, slotThree];",
" }",
"",
" $(document).ready(function(){",
@@ -1444,8 +1444,8 @@
"Use the above selector to display each number in its corresponding slot."
],
"tests":[
- "assert((function(){runSlots();if($($(\".slot\")[0]).html().replace(/\\s/gi, \"\") !== \"\" && $($(\".slot\")[1]).html().replace(/\\s/gi, \"\") !== \"\" && $($(\".slot\")[2]).html().replace(/\\s/gi, \"\") !== \"\"){return(true);}else{return(false);}})(), 'You should be displaying the result of the slot numbers in the corresponding slots')",
- "assert((function(){if(editor.match( /\\$\\(\\$\\(\\\"\\.slot\\\"\\)\\[\\d\\]\\)/gi )){if(editor.match( /\\$\\(\\$\\(\\\"\\.slot\\\"\\)\\[\\d\\]\\)/gi ).length >= 3 && editor.match( /\\.html\\(slotOne\\)/gi ) && editor.match( /\\.html\\(slotTwo\\)/gi ) && editor.match( /\\.html\\(slotThree\\)/gi )){return(true);}else{return(false);}}else{return(false);}})(), 'You should have used the the selector given in the description to select each slot and assign it the value of slotOne, slotTwo and slotThree respectively')"
+ "assert((function(){runSlots();if($($(\".slot\")[0]).html().replace(/\\s/gi, \"\") !== \"\" && $($(\".slot\")[1]).html().replace(/\\s/gi, \"\") !== \"\" && $($(\".slot\")[2]).html().replace(/\\s/gi, \"\") !== \"\"){return true;}else{return false;}})(), 'You should be displaying the result of the slot numbers in the corresponding slots')",
+ "assert((function(){if(editor.match( /\\$\\(\\$\\(\\\"\\.slot\\\"\\)\\[\\d\\]\\)/gi )){if(editor.match( /\\$\\(\\$\\(\\\"\\.slot\\\"\\)\\[\\d\\]\\)/gi ).length >= 3 && editor.match( /\\.html\\(slotOne\\)/gi ) && editor.match( /\\.html\\(slotTwo\\)/gi ) && editor.match( /\\.html\\(slotThree\\)/gi )){return true;}else{return false;}}else{return false;}})(), 'You should have used the the selector given in the description to select each slot and assign it the value of slotOne, slotTwo and slotThree respectively')"
],
"challengeSeed":[
"fccss",
@@ -1470,7 +1470,7 @@
" // Only change code above this line.",
" ",
" if(slotOne !== slotTwo || slotTwo !== slotThree){",
- " return(null);",
+ " return null;",
" }",
" ",
" if(slotOne !== undefined && slotTwo !== undefined && slotThree !== undefined){",
@@ -1479,7 +1479,7 @@
" $(\".logger\").append(\" \" + slotThree);",
" }",
" ",
- " return([slotOne, slotTwo, slotThree]);",
+ " return [slotOne, slotTwo, slotThree];",
" }",
"",
" $(document).ready(function(){",
@@ -1637,7 +1637,7 @@
" // Only change code above this line.",
" ",
" if(slotOne !== slotTwo || slotTwo !== slotThree){",
- " return(null);",
+ " return null;",
" }",
" ",
" if(slotOne !== undefined && slotTwo !== undefined && slotThree !== undefined){",
@@ -1646,7 +1646,7 @@
" $('.logger').append(' ' + slotThree);",
" }",
" ",
- " return([slotOne, slotTwo, slotThree]);",
+ " return [slotOne, slotTwo, slotThree];",
" }",
"",
" $(document).ready(function(){",
diff --git a/challenges/intermediate-bonfires.json b/challenges/intermediate-bonfires.json
index 80adf23020..f50156c26a 100644
--- a/challenges/intermediate-bonfires.json
+++ b/challenges/intermediate-bonfires.json
@@ -13,7 +13,7 @@
],
"challengeSeed": [
"function sumAll(arr) {",
- " return(1);",
+ " return 1;",
"}",
"",
"sumAll([1, 4]);"
diff --git a/challenges/object-oriented-and-functional-programming.json b/challenges/object-oriented-and-functional-programming.json
index 97d277c003..cad5dda487 100644
--- a/challenges/object-oriented-and-functional-programming.json
+++ b/challenges/object-oriented-and-functional-programming.json
@@ -42,7 +42,7 @@
" // Only change code above this line.",
"};",
"",
- "(function() {return(JSON.stringify(motorBike));})();"
+ "(function() {return JSON.stringify(motorBike);})();"
],
"challengeType":1,
"type": "waypoint",
@@ -81,7 +81,7 @@
"var myMotorBike = new MotorBike();",
"// Only change code above this line.",
"",
- "(function() {return(JSON.stringify(myMotorBike));})();"
+ "(function() {return JSON.stringify(myMotorBike);})();"
],
"challengeType":1,
"type": "waypoint"
@@ -107,10 +107,10 @@
"var Car = function() {",
" this.gear = 1;",
" function addStyle(styleMe){",
- " return('The Current Gear Is: ' + styleMe);",
+ " return 'The Current Gear Is: ' + styleMe;",
" }",
" this.getGear = function() {",
- " return(addStyle(this.gear));",
+ " return addStyle(this.gear);",
" };",
"};",
"",
@@ -118,11 +118,11 @@
" // Only change code below this line.",
" this.speed = 100;",
" function addUnit(value) {",
- " return(value + \"KM/H\");",
+ " return value + \"KM/H\";",
" }",
" ",
" getSpeed = function () {",
- " return(addUnit(speed));",
+ " return addUnit(speed);",
" };",
" ",
"};",
@@ -131,7 +131,7 @@
"var myCar = new Car();",
"var myBike = new Bike();",
"",
- "if(myBike.hasOwnProperty('getSpeed')){(function() {return(JSON.stringify(myBike.getSpeed()));})();};"
+ "if(myBike.hasOwnProperty('getSpeed')){(function() {return JSON.stringify(myBike.getSpeed());})();};"
],
"challengeType":1,
"type": "waypoint"
@@ -166,7 +166,7 @@
"",
"",
"// Only change code above this line.",
- "(function() {return(JSON.stringify(myCar));})();"
+ "(function() {return JSON.stringify(myCar);})();"
],
"challengeType":1,
"type": "waypoint"
@@ -177,7 +177,7 @@
"difficulty":0,
"description":[
"array = array.map(function(val){
",
- " return(val+1);
",
+ " return val+1;
",
"});
",
"",
"The map method is one of the easiest ways to iterate through an array or object there is. Let's use it now.",
@@ -196,7 +196,7 @@
"",
"",
"// Only change code above this line.",
- "(function() {return(array);})();"
+ "(function() {return array;})();"
],
"challengeType":1,
"type": "waypoint"
@@ -208,7 +208,7 @@
"description":[
"Reduce can be useful for condensing and array or numbers into one value.",
"var singleVal = array.reduce(function(previousVal, currentVal){
",
- " return(previousVal+currentVal);
",
+ " return previousVal+currentVal;
",
"});
"
],
"tests":[
@@ -223,7 +223,7 @@
"",
"",
"// Only change code above this line.",
- "(function() {return(singleVal);})();"
+ "(function() {return singleVal;})();"
],
"challengeType":1,
"type": "waypoint"
@@ -236,7 +236,7 @@
"filter is a useful method that can filter out values that don't match a certain criteria",
"Let's remove all the values greater than five",
"array = array.filter(function(val) {
",
- " return(val<4);
",
+ " return val<4;
",
"});
"
],
"tests":[
@@ -251,7 +251,7 @@
"",
"",
" // Only change code above this line.",
- "(function() {return(array);})();"
+ "(function() {return array;})();"
],
"challengeType":1,
"type": "waypoint"
@@ -278,7 +278,7 @@
"",
"",
" // Only change code above this line.",
- "(function() {return(array);})();"
+ "(function() {return array;})();"
],
"challengeType":1,
"type": "waypoint"
@@ -302,7 +302,7 @@
"",
"",
" // Only change code above this line.",
- "(function() {return(array);})();"
+ "(function() {return array;})();"
],
"challengeType": 1,
"type": "waypoint"
@@ -329,7 +329,7 @@
"",
"",
"// Only change code above this line.",
- "(function() {return(array);})();"
+ "(function() {return array;})();"
],
"challengeType": 1,
"type": "waypoint"
@@ -354,7 +354,7 @@
"var array = string;",
"",
"// Only change code above this line.",
- "(function() {return(array);})();"
+ "(function() {return array;})();"
],
"challengeType":1,
"type": "waypoint"
@@ -378,7 +378,7 @@
"joinMe = joinMe;",
"",
"// Only change code above this line.",
- "(function() {return(joinMe);})();"
+ "(function() {return joinMe;})();"
],
"challengeType":1,
"type": "waypoint"