diff --git a/seed/challenges/basic-javascript.json b/seed/challenges/basic-javascript.json
index d4288164fb..fa5c36c439 100644
--- a/seed/challenges/basic-javascript.json
+++ b/seed/challenges/basic-javascript.json
@@ -1059,7 +1059,8 @@
"description":[
"We can also use selectors like \\s
to find spaces in a string.",
"It is used like this:",
- "/\\s+/g
"
+ "/\\s+/g
",
+ "Select all the spaces in the sentence string."
],
"tests":[
"assert(test === 7, 'Your RegEx should have found seven spaces in the testString
.');",
@@ -1067,15 +1068,15 @@
],
"challengeSeed":[
"var test = (function(){",
- " var testString = \"How many spaces are there in this sentence.\";",
+ " var testString = \"How many spaces are there in this sentence?\";",
"",
" // Only change code below this line.",
"",
" var expression = /.+/gi;",
"",
- "// 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);",
+ " // 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);})();"
],
"type": "waypoint",
@@ -1095,15 +1096,15 @@
],
"challengeSeed":[
"var test = (function(){",
- " var testString = \"How many spaces are there in this sentence.\";",
+ " var testString = \"How many spaces are there in this sentence?\";",
"",
" // Only change code below this line.",
"",
- " var expression = /.+/gi;",
+ " var expression = /./gi;",
"",
- "// 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);",
+ " // 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);})();"
],
"type": "waypoint",
@@ -1115,16 +1116,16 @@
"difficulty":"9.988",
"description":[
"We are now going to try and combine some of the stuff we've just learned and create the logic for a slot machine game.",
- "For this we will need to generate three random numbers between 1
and 5
to represent the possible values of each individual slot.",
+ "For this we will need to generate three random numbers between 1
and 3
to represent the possible values of each individual slot.",
"Store the three random numbers in slotOne
, slotTwo
and slotThree
.",
"Generate the random numbers by using the system we used earlier:",
- "Math.floor(Math.random() * (5 - 1 + 1)) + 1;
"
+ "Math.floor(Math.random() * (3 - 1 + 1)) + 1;
"
],
"tests":[
- "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?5\\s?\\-\\s?1\\s?\\+\\s?1\\s?\\)\\s?\\)\\s?\\+\\s?1;/gi) !== null){return(editor.match(/Math\\.floor\\(\\s?Math\\.random\\(\\)\\s?\\*\\s?\\(\\s?5\\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() * (5 - 1 + 1)) + 1;
three times to generate your random numbers.');"
+ "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.')"
],
"challengeSeed":[
"fccss",
@@ -1133,7 +1134,7 @@
" var slotTwo;",
" var slotThree;",
" ",
- " var images = [\"http://i.imgur.com/9H17QFk.png\", \"http://i.imgur.com/9RmpXTy.png\", \"http://i.imgur.com/VJnmtt5.png\", \"http://i.imgur.com/XK735i8.png\", \"http://i.imgur.com/Vt32Bf7.png\"];",
+ " var images = [\"http://i.imgur.com/9H17QFk.png\", \"http://i.imgur.com/9RmpXTy.png\", \"http://i.imgur.com/VJnmtt5.png\"];",
" ",
" // Only change code below this line.",
" ",
@@ -1268,16 +1269,17 @@
"title": "Add your JavaScript Slot Machine Slots",
"difficulty":"9.989",
"description":[
- "Now that we have our random numbers we need to go and check for when they are all the same that means we should count it as a win.",
- "Different numbers will have different values so we need to return the matched number or null.",
- "If we get a match we should change the value of win to the number that we have three of or leave it as null.",
- "Let's create an if statement with multiple conditions to check that all the numbers are equal.",
+ "Now that our slots will each generate random numbers, we need to check whether they've all returned the same number.",
+ "If they have, we should notify our user that they've won.",
+ "Otherwise, we should return null
, which is a JavaScript data structure that means nothing.",
+ "If all three numbers match, we should change the value of win to the number that we have three of 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",
@@ -1286,11 +1288,11 @@
" var slotTwo;",
" var slotThree;",
" ",
- " var images = [\"http://i.imgur.com/9H17QFk.png\", \"http://i.imgur.com/9RmpXTy.png\", \"http://i.imgur.com/VJnmtt5.png\", \"http://i.imgur.com/XK735i8.png\", \"http://i.imgur.com/Vt32Bf7.png\"];",
+ " var images = [\"http://i.imgur.com/9H17QFk.png\", \"http://i.imgur.com/9RmpXTy.png\", \"http://i.imgur.com/VJnmtt5.png\"];",
" ",
- " slotOne = Math.floor(Math.random() * (5 - 1 + 1)) + 1;",
- " slotTwo = Math.floor(Math.random() * (5 - 1 + 1)) + 1;",
- " slotThree = Math.floor(Math.random() * (5 - 1 + 1)) + 1;",
+ " slotOne = Math.floor(Math.random() * (3 - 1 + 1)) + 1;",
+ " slotTwo = Math.floor(Math.random() * (3 - 1 + 1)) + 1;",
+ " slotThree = Math.floor(Math.random() * (3 - 1 + 1)) + 1;",
" ",
" $(\".logger\").html(\"\");",
" $(\".logger\").html(\"Not A Win\")",
@@ -1428,15 +1430,15 @@
"difficulty":"9.990",
"description":[
"Now we can detect a win. Let's get this slot machine working.",
- "We're going to use the jQuery selector $(\".slot\")
to select all of the slots.",
- "Once they are all selected we can use bracket notation to access each individual one like this.",
- "$($(\".slot\")[0]).html(\"\")
",
- "This will grab the the first slot so that we can add the numbers we generate to them.",
- "Use the above selector to display each number in the corresponding slot."
+ "Let's use the jQuery selector
$(\".slot\")
to select all of the slots.",
+ "Once they are all selected, we can use bracket notation
to access each individual slot:",
+ "$($(\".slot\")[0]).html(slotOne);
",
+ "This jQuery will select the first and update the slot's HTML to display the correct number.",
+ "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",
@@ -1445,11 +1447,11 @@
" var slotTwo;",
" var slotThree;",
" ",
- " var images = [\"http://i.imgur.com/9H17QFk.png\", \"http://i.imgur.com/9RmpXTy.png\", \"http://i.imgur.com/VJnmtt5.png\", \"http://i.imgur.com/XK735i8.png\", \"http://i.imgur.com/Vt32Bf7.png\"];",
+ " var images = [\"http://i.imgur.com/9H17QFk.png\", \"http://i.imgur.com/9RmpXTy.png\", \"http://i.imgur.com/VJnmtt5.png\"];",
" ",
- " slotOne = Math.floor(Math.random() * (5 - 1 + 1)) + 1;",
- " slotTwo = Math.floor(Math.random() * (5 - 1 + 1)) + 1;",
- " slotThree = Math.floor(Math.random() * (5 - 1 + 1)) + 1;",
+ " slotOne = Math.floor(Math.random() * (3 - 1 + 1)) + 1;",
+ " slotTwo = Math.floor(Math.random() * (3 - 1 + 1)) + 1;",
+ " slotThree = Math.floor(Math.random() * (3 - 1 + 1)) + 1;",
" ",
" $(\".logger\").html(\"\");",
" $(\".logger\").html(\"Not A Win\")",
@@ -1593,14 +1595,17 @@
"title": "Give your JavaScript Slot Machine some stylish images",
"difficulty":"9.9901",
"description":[
- "Now that we can detect when the player wins we are going to add an image to each slot depending on the random values we generate:",
- "$($('.slot')[0]).html('<img src = \"' + images[slotOne-1] + '\">');
"
+ "Now let's add some images to our slots.",
+ "We've already set up the images for you in an array called images
. We can use different indexes to grab each of these.",
+ "Here's how we would set the first slot to show a different image depending on which number its random number generates:",
+ "$($('.slot')[0]).html('<img src = \"' + images[slotOne-1] + '\">');
",
+ "Set up all three slots like this, then click the \"Go\" button to play the slot machine."
],
"tests":[
- "assert(editor.match(/\\$\\(\\$\\(\\'\\.slot\\'\\)\\[\\d\\]\\)\\.html\\(\\'\\
\\'\\);/gi) && editor.match(/\\$\\(\\$\\(\\'\\.slot\\'\\)\\[\\d\\]\\)\\.html\\(\\'\\
\\'\\);/gi).length >= 3, 'Use the provided code three times. One for each slot');",
- "assert(editor.match(/slotOne/gi) && editor.match(/slotOne/gi).length >= 7, 'You should have used the slotOne value at least once');",
- "assert(editor.match(/slotTwo/gi) && editor.match(/slotTwo/gi).length >=8, 'You should have used the slotTwo value at least once');",
- "assert(editor.match(/slotThree/gi) && editor.match(/slotThree/gi).length >= 7, 'You should have used the slotThree value at least once');"
+ "assert(editor.match(/\\$\\(\\$\\(\\'\\.slot\\'\\)\\[\\d\\]\\)\\.html\\(\\'\\
\\'\\);/gi) && editor.match(/\\$\\(\\$\\(\\'\\.slot\\'\\)\\[\\d\\]\\)\\.html\\(\\'\\
\\'\\);/gi).length >= 3, 'Use the provided code three times. One for each slot')",
+ "assert(editor.match(/slotOne/gi) && editor.match(/slotOne/gi).length >= 7, 'You should have used the slotOne value at least once')",
+ "assert(editor.match(/slotTwo/gi) && editor.match(/slotTwo/gi).length >= 8, 'You should have used the slotTwo value at least once')",
+ "assert(editor.match(/slotThree/gi) && editor.match(/slotThree/gi).length >= 7, 'You should have used the slotThree value at least once')"
],
"challengeSeed":[
"fccss",
@@ -1609,11 +1614,11 @@
" var slotTwo;",
" var slotThree;",
" ",
- " var images = [\"http://i.imgur.com/9H17QFk.png\", \"http://i.imgur.com/9RmpXTy.png\", \"http://i.imgur.com/VJnmtt5.png\", \"http://i.imgur.com/XK735i8.png\", \"http://i.imgur.com/Vt32Bf7.png\"];",
+ " var images = [\"http://i.imgur.com/9H17QFk.png\", \"http://i.imgur.com/9RmpXTy.png\", \"http://i.imgur.com/VJnmtt5.png\"];",
" ",
- " slotOne = Math.floor(Math.random() * (5 - 1 + 1)) + 1;",
- " slotTwo = Math.floor(Math.random() * (5 - 1 + 1)) + 1;",
- " slotThree = Math.floor(Math.random() * (5 - 1 + 1)) + 1;",
+ " slotOne = Math.floor(Math.random() * (3 - 1 + 1)) + 1;",
+ " slotTwo = Math.floor(Math.random() * (3 - 1 + 1)) + 1;",
+ " slotThree = Math.floor(Math.random() * (3 - 1 + 1)) + 1;",
" ",
" $('.logger').html('');",
" $('.logger').html('Not A Win');",
diff --git a/seed/challenges/object-oriented-and-functional-programming.json b/seed/challenges/object-oriented-and-functional-programming.json
index 85e4a41c12..abd51b7dc6 100644
--- a/seed/challenges/object-oriented-and-functional-programming.json
+++ b/seed/challenges/object-oriented-and-functional-programming.json
@@ -2,84 +2,93 @@
"name": "Object Oriented and Functional Programming",
"order": 0.010,
"note": [
- "Waypoint: Closures",
- "Waypoint: Factories",
- "Waypoint: Pure Functions",
- "Waypoint: Currying Functions",
- "Waypoint: Functors",
- "Waypoint: Currying Functions"
+ "Closures",
+ "Factories",
+ "Pure Functions",
+ "Currying Functions",
+ "Functors",
+ "Currying Functions"
],
"challenges": [
{
"id":"cf1111c1c15feddfaeb1bdef",
- "title":"Waypoint: A Review On Objects",
+ "title": "Declaring JavaScript Objects as Variables",
"difficulty":0,
"description":[
"Before we dive into Object Oriented Programming, let's revisit JavaScript objects.",
- "Give your motorBike
object the correct attributes."
+ "Give your motorBike
object a wheels
, engine
and seats
attribute and set them to numbers."
],
"tests":[
- "assert(motorBike.wheels===2, 'You should have given motorBike two wheels');",
- "assert(motorBike.engine===1, 'You should have given motorBike one engine');",
- "assert(motorBike.seats===1, 'You should have given motorBike one seat');"
+ "assert(typeof(motorBike.engines) === 'number', 'engines
should be have a engines
attribute set to a number.');",
+ "assert(typeof(motorBike.wheels) === 'number', 'wheels
should be have a engines
attribute set to a number.');",
+ "assert(typeof(motorBike.seats) === 'number', 'seats
should be have a engines
attribute set to a number.');"
],
"challengeSeed":[
"//Here is a sample Object",
"var car = {",
- " \"wheels\":4,",
- " \"engine\":1,",
- " \"seats\":5",
+ " \"wheels\":4,",
+ " \"engines\":1,",
+ " \"seats\":5",
"};",
"",
"//Now Let's make a similar Object called motorBike",
"//Give it two wheels, one engine and one seat",
"var motorBike = {",
- " \"wheels\":0,",
- " \"engine\":0,",
- " \"seats\":0",
+ " // Only change code below this line.",
+ "",
+ "",
+ "",
+ " // Only change code above this line.",
"};",
"",
"(function(){return(JSON.stringify(motorBike));})();"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint",
+ "type": "waypoint"
},
{
"id":"cf1111c1c15feddfaeb2bdef",
- "title":"Waypoint: Constructing Objects",
+ "title": "Constructing JavaScript Objects with Functions",
"difficulty":0,
"description":[
- "We are also able to create objects using functions.",
- ""
+ "We are also able to create objects using constructor
functions.",
+ "Give your motorBike
object a wheels
, engine
and seats
attribute and set them to numbers."
],
"tests":[
- "assert((new Car()).wheels === 4, \"myCar.wheels should be four. Make sure that you haven't changed this value\");",
- "assert(typeof((new Car()).engine) === 'number', 'myCar.engine should be a number');",
- "assert(typeof((new Car()).seats) === 'number', 'myCar.seats should be a number');"
+ "assert(typeof((new Car()).engines) === 'number', 'engines
should be have a engines
attribute set to a number.');",
+ "assert(typeof((new Car()).wheels) === 'number', 'wheels
should be have a engines
attribute set to a number.');",
+ "assert(typeof((new Car()).seats) === 'number', 'seats
should be have a engines
attribute set to a number.');"
],
"challengeSeed":[
"// Let's add the properties engine and seats to the car in the same way that the property wheels has been added below. They should both be numbers.",
"var Car = function(){",
- " this.wheels = 4;",
+ " // Only change code below this line.",
+ " this.wheels = 4;",
+ " this.engines = 1;",
+ " this.seats = 1;",
"};",
"",
- "var myCar = new Car();",
+ "var motorBike = new Car();",
+ "// Only change code above this line.",
"",
"(function(){return(JSON.stringify(myCar));})();"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint"
},
{
"id":"cf1111c1c15feddfaeb3bdef",
- "title":"Waypoint: Understanding Public and Private Properties",
+ "title":"Understanding Public and Private Properties",
"difficulty":0,
"description":[
"In the last challenge we use the this
to reference public properties the current object or function.",
- "We can also create variables and functions that aren't accessible from outside the Object"
+ "We can also create variables and functions that aren't accessible from outside the object."
],
"tests":[
- "assert(typeof(myBike.getSpeed)!=='undefined' && typeof(myBike.getSpeed) === 'function', 'The method getSpeed of myBike should be accessible outside the Object');",
- "assert(typeof(myBike.speed) === 'undefined', 'We should not been able');",
- "assert(typeof(myBike.addUnit === 'undefined'), '');"
+ "assert(typeof(myBike.getSpeed)!=='undefined' && typeof(myBike.getSpeed) === 'function', 'The method getSpeed of myBike should be accessible outside the object');",
+ "assert(typeof(myBike.speed) === 'undefined', 'myBike.speed
should remain undefined.');",
+ "assert(typeof(myBike.addUnit === 'undefined'), 'myBike.addUnit
should remain undefined.');"
],
"challengeSeed":[
"//Let's create an object with a two functions. One attached as a property and one not.",
@@ -113,15 +122,16 @@
"",
"if(myBike.hasOwnProperty('getSpeed')){(function(){return(JSON.stringify(myBike.getSpeed()));})();};"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint"
},
{
"id":"cf1111c1c15feddfaeb4bdef",
- "title":"Waypoint: Instantiation",
+ "title":"Instantiation",
"difficulty":0,
"description":[
- "Instantiation at it's most basic level is where you are creating a copy of an object from a template for use at a later time",
- "The instance inherits all the properties and methods of the original Object"
+ "Instantiation at it's most basic level is where you are creating a copy of an object from a template for use at a later time.",
+ "The instance inherits all the properties and methods of the original Object."
],
"tests":[
"assert((new Car()).wheels === 4, 'The property wheels should be four in the object constructor');",
@@ -141,18 +151,19 @@
"",
"(function(){return(JSON.stringify(myCar));})();"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint"
},
{
"id":"cf1111c1c15feddfaeb7bdef",
- "title":"Waypoint: Using .map",
+ "title":"Using .map",
"difficulty":0,
"description":[
- "array = array.map(function(val){",
- " return(val+1);",
- "});
",
+ "array = array.map(function(val){
",
+ "thinsp;thinsp;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"
+ "The map method is one of the easiest ways to iterate through an array or object there is. Let's use it now."
],
"tests":[
"assert.deepEqual(array, [4,5,6,7,8], 'You should have added three to each value in the array');",
@@ -167,17 +178,18 @@
"",
"(function(){return(array);})();"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint"
},
{
"id":"cf1111c1c15feddfaeb8bdef",
- "title":"Waypoint: Using .reduce",
+ "title":"Using .reduce",
"difficulty":0,
"description":[
"Reduce can be useful for condensing and array or numbers into one value.",
- "var singleVal = array.reduce(function(previousVal, currentVal){",
- " return(previousVal+currentVal);",
- "}
"
+ "var singleVal = array.reduce(function(previousVal, currentVal){
",
+ "thinsp;thinsp;return(previousVal+currentVal);
",
+ "}
"
],
"tests":[
"assert(singleVal == 30, 'singleVal should have been set to the result of you reduce operation');",
@@ -191,19 +203,19 @@
"",
"(function(){return(singleVal);})()"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint"
},
{
"id":"cf1111c1c15feddfaeb9bdef",
- "title":"Waypoint: Using .filter",
+ "title":"Using .filter",
"difficulty":0,
"description":[
- "",
"filter is a useful method that can filter out values that don't match a certain criteria",
"Let's remove all the values less than six",
- "array = array.filter(function(val){",
- " return(val<4);",
- "});
"
+ "array = array.filter(function(val) {
",
+ "thinsp;thinsp;return(val<4);
",
+ "});
"
],
"tests":[
"assert.deepEqual(array, [1,2,3,4,5], 'You should have removed all the values from the array that are less than six');",
@@ -217,17 +229,18 @@
"",
"(function(){return(array);})();"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint"
},
{
"id":"cf1111c1c16feddfaeb1bdef",
- "title":"Waypoint: Using .sort",
+ "title":"Using .sort",
"difficulty":0,
"description":[
"You can use the method sort to easily sort the values in the array alphabetically or numerically",
- "var array = [1,3,2];",
- "array = array.sort();
",
- "This will return [1, 2, 3]"
+ "var array = [1,3,2];
",
+ "array = array.sort();
",
+ "This will return [1, 2, 3]
"
],
"tests":[
"assert.deepEqual(array, ['alpha', 'beta', 'charlie'], 'You should have sorted the array alphabetically');",
@@ -241,14 +254,15 @@
"",
"(function(){return(array);})();"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint"
},
{
"id": "cf1111c1c16feddfaeb2bdef",
- "title": "Waypoint: Using .reverse",
+ "title": "Using .reverse",
"difficulty": 0,
"description": [
- "You can use the reverse method to reverse the contents of an array"
+ "You can use the .reverse()
function to reverse the contents of an array."
],
"tests": [
"assert.deepEqual(array, [7,6,5,4,3,2,1], 'You should reverse the array');",
@@ -262,14 +276,15 @@
"",
"(function(){return(array);})();"
],
- "challengeType": 1
+ "challengeType": 1,
+ "type": "waypoint"
},
{
"id": "cf1111c1c16feddfaeb3bdef",
- "title": "Waypoint: Using .concat",
+ "title": "Using .concat",
"difficulty": 0,
"description": [
- "Concat can be used to merge the contents of two arrays into one",
+ ".concat()
can be used to merge the contents of two arrays into one.",
"array = array.concat(otherArray);
"
],
"tests": [
@@ -286,16 +301,16 @@
"",
"(function(){return(array);})()"
],
- "challengeType": 1
+ "challengeType": 1,
+ "type": "waypoint"
},
{
"id":"cf1111c1c16feddfaeb4bdef",
- "title":"Waypoint: Using .split",
+ "title":"Using .split",
"difficulty":0,
"description":[
- "",
- "You can use the split method to split a string into an array",
- "split uses the argument you give to to split the string",
+ "You can use the .split()
method to split a string into an array.",
+ "split uses the argument you give to to split the string.",
"array = string.split(' ');
"
],
"tests":[
@@ -309,14 +324,15 @@
"",
"(function(){return(array);})();"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint"
},
{
"id":"cf1111c1c16feddfaeb5bdef",
- "title":"Waypoint: Using .join",
+ "title":"Using .join",
"difficulty":0,
"description":[
- "We can use the join method to join each element in an array into a string separated by whatever delimiter you provide as an argument to the join operation",
+ "We can use the .join()
method to join each element in an array into a string separated by whatever delimiter you provide as an argument to the join operation.",
"var joinMe = joinMe.join(\" \");
"
],
"tests":[
@@ -330,7 +346,8 @@
"",
"(function(){return(joinMe);})();"
],
- "challengeType":1
+ "challengeType":1,
+ "type": "waypoint"
}
]
}