First twelve OOP challenges ready to roll
This commit is contained in:
@ -123,7 +123,8 @@
|
|||||||
"difficulty":0,
|
"difficulty":0,
|
||||||
"description":[
|
"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"
|
"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":[
|
"tests":[
|
||||||
"assert((new Car()).wheels === 4, 'The property wheels should be four in the object constructor');",
|
"assert((new Car()).wheels === 4, 'The property wheels should be four in the object constructor');",
|
||||||
@ -145,48 +146,30 @@
|
|||||||
],
|
],
|
||||||
"challengeType":1
|
"challengeType":1
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"id":"cf1111c1c15feddfaeb5bdef",
|
|
||||||
"title":"Waypoint: Inheritance",
|
|
||||||
"difficulty":0,
|
|
||||||
"description":[
|
|
||||||
""
|
|
||||||
],
|
|
||||||
"tests":[
|
|
||||||
"assert(1==2, '');"
|
|
||||||
],
|
|
||||||
"challengeSeed":[
|
|
||||||
"Under Construction"
|
|
||||||
],
|
|
||||||
"challengeType":1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id":"cf1111c1c15feddfaeb6bdef",
|
|
||||||
"title":"Waypoint: Prototypical Inheritance",
|
|
||||||
"difficulty":0,
|
|
||||||
"description":[
|
|
||||||
""
|
|
||||||
],
|
|
||||||
"tests":[
|
|
||||||
"assert(1==2, '');"
|
|
||||||
],
|
|
||||||
"challengeSeed":[
|
|
||||||
"Under Construction"
|
|
||||||
],
|
|
||||||
"challengeType":1
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id":"cf1111c1c15feddfaeb7bdef",
|
"id":"cf1111c1c15feddfaeb7bdef",
|
||||||
"title":"Waypoint: Using .map",
|
"title":"Waypoint: Using .map",
|
||||||
"difficulty":0,
|
"difficulty":0,
|
||||||
"description":[
|
"description":[
|
||||||
""
|
"",
|
||||||
|
"<code>array = array.map(function(val){",
|
||||||
|
" return(val+1);",
|
||||||
|
"});</code>",
|
||||||
|
"",
|
||||||
|
"The map method is one of the easiest ways to iterate through an array or object there is. Let's use it now"
|
||||||
],
|
],
|
||||||
"tests":[
|
"tests":[
|
||||||
"assert(1==2, '');"
|
"assert.deepEqual(array, [4,5,6,7,8], 'You should have added three to each value in the array');",
|
||||||
|
"assert(editor.getValue().match(/\\.map\\(/gi), 'You should be making use of the map method');",
|
||||||
|
"assert(editor.getValue().match(/\\[1\\,2\\,3\\,4\\,5\\]/gi), 'You should only modify the array with .map');"
|
||||||
],
|
],
|
||||||
"challengeSeed":[
|
"challengeSeed":[
|
||||||
"Under Construction"
|
"//Use map to add three to each value in the array",
|
||||||
|
"var array = [1,2,3,4,5];",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"(function(){return(array);})();"
|
||||||
],
|
],
|
||||||
"challengeType":1
|
"challengeType":1
|
||||||
},
|
},
|
||||||
@ -195,13 +178,25 @@
|
|||||||
"title":"Waypoint: Using .reduce",
|
"title":"Waypoint: Using .reduce",
|
||||||
"difficulty":0,
|
"difficulty":0,
|
||||||
"description":[
|
"description":[
|
||||||
""
|
"",
|
||||||
|
"Reduce can be useful for condensing and array or numbers into one value.",
|
||||||
|
"",
|
||||||
|
"<code>var singleVal = array.reduce(function(previousVal, currentVal){",
|
||||||
|
" return(previousVal+currentVal);",
|
||||||
|
"}</code>"
|
||||||
],
|
],
|
||||||
"tests":[
|
"tests":[
|
||||||
"assert(1==2, '');"
|
"assert(singleVal == 30, 'singleVal should have been set to the result of you reduce operation');",
|
||||||
|
"assert(editor.getValue().match(/\\.reduce\\(/gi), 'You should have made use of the reduce method');"
|
||||||
],
|
],
|
||||||
"challengeSeed":[
|
"challengeSeed":[
|
||||||
"Under Construction"
|
"var array = [4,5,6,7,8];",
|
||||||
|
"",
|
||||||
|
"var singleVal = 0;",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"(function(){return(singleVal);})()"
|
||||||
],
|
],
|
||||||
"challengeType":1
|
"challengeType":1
|
||||||
},
|
},
|
||||||
@ -210,13 +205,24 @@
|
|||||||
"title":"Waypoint: Using .filter",
|
"title":"Waypoint: Using .filter",
|
||||||
"difficulty":0,
|
"difficulty":0,
|
||||||
"description":[
|
"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",
|
||||||
|
"<code>array = array.filter(function(val){",
|
||||||
|
" return(val<4);",
|
||||||
|
"});</code>"
|
||||||
],
|
],
|
||||||
"tests":[
|
"tests":[
|
||||||
"assert(1==2, '');"
|
"assert.deepEqual(array, [1,2,3,4,5], 'You should have removed all the values from the array that are less than six');",
|
||||||
|
"assert(editor.getValue().match(/array\\.filter\\(/gi), 'You should be using the filter method to remove the values from the array');",
|
||||||
|
"assert(editor.getValue().match(/\\[1\\,2\\,3\\,4\\,5\\,6\\,7\\,8\\,9\\,10\\]/gi), 'You should only be using .filter to modify the contents of the array);"
|
||||||
],
|
],
|
||||||
"challengeSeed":[
|
"challengeSeed":[
|
||||||
"Under Construction"
|
"var array = [1,2,3,4,5,6,7,8,9,10];",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"(function(){return(array);})();"
|
||||||
],
|
],
|
||||||
"challengeType":1
|
"challengeType":1
|
||||||
},
|
},
|
||||||
@ -225,13 +231,24 @@
|
|||||||
"title":"Waypoint: Using .sort",
|
"title":"Waypoint: Using .sort",
|
||||||
"difficulty":0,
|
"difficulty":0,
|
||||||
"description":[
|
"description":[
|
||||||
|
"",
|
||||||
|
"You can use the method sort to easily sort the values in the array alphabetically or numerically",
|
||||||
|
"<code>var array = [1,3,2];",
|
||||||
|
"array = array.sort();</code>",
|
||||||
|
"This will return [1, 2, 3]",
|
||||||
""
|
""
|
||||||
],
|
],
|
||||||
"tests":[
|
"tests":[
|
||||||
"assert(1==2, '');"
|
"assert.deepEqual(array, ['alpha', 'beta', 'charlie'], 'You should have sorted the array alphabetically');",
|
||||||
|
"assert(editor.getValue().match(/\\[\\'beta\\'\\,\\s\\'alpha\\'\\,\\s'charlie\\'\\];/gi), 'You should be sorting the array using sort');",
|
||||||
|
"assert(editor.getValue().match(/\\.sort\\(\\)/gi), 'You should have made use of the sort method');"
|
||||||
],
|
],
|
||||||
"challengeSeed":[
|
"challengeSeed":[
|
||||||
"Under Construction"
|
"var array = ['beta', 'alpha', 'charlie'];",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"(function(){return(array);})();"
|
||||||
],
|
],
|
||||||
"challengeType":1
|
"challengeType":1
|
||||||
},
|
},
|
||||||
@ -240,13 +257,20 @@
|
|||||||
"title": "Waypoint: Using .reverse",
|
"title": "Waypoint: Using .reverse",
|
||||||
"difficulty": 0,
|
"difficulty": 0,
|
||||||
"description": [
|
"description": [
|
||||||
""
|
"",
|
||||||
|
"You can use the reverse method to reverse the contents of an array"
|
||||||
],
|
],
|
||||||
"tests": [
|
"tests": [
|
||||||
"assert(1==2, '');"
|
"assert.deepEqual(array, [7,6,5,4,3,2,1], 'You should reverse the array');",
|
||||||
|
"assert(editor.getValue().match(/\\.reverse\\(\\)/gi), '');",
|
||||||
|
"assert(editor.getValue().match(/\\[1\\,2\\,3\\,4\\,5\\,6\\,7/gi), '');"
|
||||||
],
|
],
|
||||||
"challengeSeed": [
|
"challengeSeed": [
|
||||||
"Under Construction"
|
"var array = [1,2,3,4,5,6,7];",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"(function(){return(array);})();"
|
||||||
],
|
],
|
||||||
"challengeType": 1
|
"challengeType": 1
|
||||||
},
|
},
|
||||||
@ -255,15 +279,70 @@
|
|||||||
"title": "Waypoint: Using .concat",
|
"title": "Waypoint: Using .concat",
|
||||||
"difficulty": 0,
|
"difficulty": 0,
|
||||||
"description": [
|
"description": [
|
||||||
""
|
"",
|
||||||
|
"Concat can be used to merge the contents of two arrays into one",
|
||||||
|
"<code>array = array.concat(otherArray);</code>"
|
||||||
],
|
],
|
||||||
"tests": [
|
"tests": [
|
||||||
"assert(1==2, '');"
|
"assert.deepEqual(array, [1,2,3,4,5,6], 'You should concat the two arrays together');",
|
||||||
|
"assert(editor.getValue().match(/\\.concat\\(/gi), 'You should be using the concat method to merge the two arrays');",
|
||||||
|
"assert(editor.getValue().match(/\\[1\\,2\\,3\\]/gi) && editor.getValue().match(/\\[4\\,5\\,6\\]/gi), 'You should only modify the two arrays without changing the origional ones');"
|
||||||
],
|
],
|
||||||
"challengeSeed": [
|
"challengeSeed": [
|
||||||
"Under Construction"
|
"var array = [1,2,3];",
|
||||||
|
"",
|
||||||
|
"var concatMe = [4,5,6];",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"(function(){return(array);})()"
|
||||||
],
|
],
|
||||||
"challengeType": 1
|
"challengeType": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":"cf1111c1c16feddfaeb4bdef",
|
||||||
|
"title":"Waypoint: 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",
|
||||||
|
"<code>array = string.split(' ');</code>"
|
||||||
|
],
|
||||||
|
"tests":[
|
||||||
|
"assert(typeof(array) === 'object' && array.length === 5, 'You should have split the string by it\\'s spaces');",
|
||||||
|
"assert(/\\.split\\(/gi, 'You should have made use of the split method on the string');"
|
||||||
|
],
|
||||||
|
"challengeSeed":[
|
||||||
|
"var string = \"Split me into an array\";",
|
||||||
|
"",
|
||||||
|
"var array = string;",
|
||||||
|
"",
|
||||||
|
"(function(){return(array);})();"
|
||||||
|
],
|
||||||
|
"challengeType":1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":"cf1111c1c16feddfaeb5bdef",
|
||||||
|
"title":"Waypoint: 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",
|
||||||
|
"<code>var joinMe = joinMe.join(\" \");</code>"
|
||||||
|
],
|
||||||
|
"tests":[
|
||||||
|
"assert(typeof(joinMe) === 'string' && joinMe === \"Split me into an array\", 'You should have joined the arrays by it\\'s spaces');",
|
||||||
|
"assert(/\\.join\\(/gi, 'You should have made use of the join method on the array');"
|
||||||
|
],
|
||||||
|
"challengeSeed":[
|
||||||
|
"var joinMe = [\"Split\",\"me\",\"into\",\"an\",\"array\"];",
|
||||||
|
"",
|
||||||
|
"joinMe = joinMe;",
|
||||||
|
"",
|
||||||
|
"(function(){return(joinMe);})();"
|
||||||
|
],
|
||||||
|
"challengeType":1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user